2013武科大蓝桥杯校内选拔赛 I题 划分数
2013-11-15 23:47
190 查看
题目链接:点击打开链接
三维的dp方程比较好理解。。。
假设dp[i][j][k]表示数i划分成k份,最大的那份不大于j的总数
那么转移方程是
dp[i][j][k] = dp[i][j-1][k] + dp[i-j][j][k-1]
然后边界处理,我写错了。在别人的帮助下才改对。
官方题解~
第9题:划分数
本题为动态规划题。
dp[i][j]表示数i划分成j份的总数。
转移方程:dp[i][j]=dp[i-1][j-1]+dp[i-j][j];(i>=j)
分类讨论,分成两类:
1、最小的那一份为1,则为dp[i-1][j-1],表示将剩下的i-1分成j-1份。
2、最小的那一份大于1,即>=2,先把j份每个里面放1,然后在把剩下的i-j分成j份。
(可以想象i个苹果放进j个盒子里)
三维的dp方程比较好理解。。。
假设dp[i][j][k]表示数i划分成k份,最大的那份不大于j的总数
那么转移方程是
dp[i][j][k] = dp[i][j-1][k] + dp[i-j][j][k-1]
然后边界处理,我写错了。在别人的帮助下才改对。
#include<cstdio> #include<cstring> using namespace std; int dp[220][220][10]; int solve(int m,int i,int k) { if(k==0&&m==0) return 1; if(m<=0||k==0||i==0) return 0; else if(dp[m][i][k] != -1) { return dp[m][i][k]; }else if(m<i) return dp[m][i][k] = solve(m, m, k); else return dp[m][i][k] = solve(m, i-1,k)+solve(m-i, i, k-1); } void init() { memset(dp, -1, sizeof(dp)); for(int i=1;i<=200;i++) { for(int j=1;j<=200;j++) { for(int k=1;k<=6;k++) { solve(i,j,k); } } } } int main() { int n,m; init(); while(scanf("%d%d",&n,&m)!=EOF) { printf("%d\n",dp [m]); } return 0; }
官方题解~
第9题:划分数
本题为动态规划题。
dp[i][j]表示数i划分成j份的总数。
转移方程:dp[i][j]=dp[i-1][j-1]+dp[i-j][j];(i>=j)
分类讨论,分成两类:
1、最小的那一份为1,则为dp[i-1][j-1],表示将剩下的i-1分成j-1份。
2、最小的那一份大于1,即>=2,先把j份每个里面放1,然后在把剩下的i-j分成j份。
(可以想象i个苹果放进j个盒子里)
#include<cstdio> #include<iostream> using namespace std; int p[220][10]; void init() { p[0][0]=1; for(int i=1;i<=200;i++) { for(int j=1;j<=6;j++) { if(i>=j) p[i][j]=p[i-1][j-1]+p[i-j][j]; } } } int main() { int n,m; init(); while(~scanf("%d%d",&n,&m)) { printf("%d\n",p [m]); } return 0; }
相关文章推荐
- 2013武科大蓝桥杯校内选拔赛 H题 火柴棒
- 2013武科大蓝桥杯校内选拔赛 G题 展开字符串(模拟)
- 2013 蓝桥杯校内选拔赛 java本科B组(题目+答案)
- 2013 蓝桥杯校内选拔赛 java本科B组(题目+答案)
- 2013年武科大蓝桥杯校内选拔赛 F gcd和lcm
- 第五届蓝桥杯校内选拔赛——4
- 第九届“蓝桥杯”校内选拔赛试题
- 递归找数——蓝桥杯第六届校内选拔赛第4题
- 第六届蓝桥杯校内选拔赛C/C++高职组解题(1)
- 13年蓝桥杯校内选拔赛B组试题
- 蓝桥杯校内选拔赛 派遣敢死队
- 第六届蓝桥杯校内选拔赛C/C++高职组解题(2)
- 第五届“蓝桥杯”全国软件校内选拔赛试题(Java组)1、素数问题
- 第五届蓝桥杯校内选拔赛——1
- 第六届蓝桥杯校内选拔赛C/C++高职组解题(3)
- 第五届“蓝桥杯”全国软件 校内选拔赛试题(Java组)2。
- 第五届蓝桥杯(校内选拔赛)
- 第六届蓝桥杯校内选拔赛C/C++高职组解题(4)
- 第五届“蓝桥杯”全国软件和 校内选拔赛试题(Java组)4、计算蔬菜总价
- 第八届蓝桥杯校内选拔赛1-3题解答