问题标题: 酷町堂:1189

0
0

0
已采纳
汪恺恒
汪恺恒
中级启示者
中级启示者

用记忆化搜索

核心

int dfs(int x,int k){
    if(f[x][k]!=-1) return f[x][k];
    if(x==0) return 1;
    int ans=0;
    for(int i=1;i<=min(x,k-1);i++){
        ans+=dfs(x-i,i);
    }
    f[x][k]=ans;
    return f[x][k];
}

ps:板块没错,不过你可以看一下版规

我要回答