1 solutions
-
0
算法标签:dfs ,剪枝
难度:橙
一道 dfs 。在 dfs 函数中定义三个参数:剩余总和,剩余数量,剩余数最小值 。直接 dfs 即可。
dfs 部分代码如下:
int dfs(int a/*剩余总和*/,int b/*剩余数量*/,int c/*最小值*/){ int ans=0;//答案 if(!a||!b) return !a&&!b;//结束条件 if(x[a][b][c]!=0) return x[a][b][c];//如果已经存过,则直接调用 for(int i=c;i<=a/b;i++) ans+=dfs(a-i,b-1,i);//取数过程 x[a][b][c]=ans;//放入记忆数组 return ans; }
- 1
Information
- ID
- 19
- Time
- 1000ms
- Memory
- 512MiB
- Difficulty
- 5
- Tags
- # Submissions
- 61
- Accepted
- 22
- Uploaded By