可能nyist看见加的背包专题我老去凑热闹,觉得太便宜我了。他们新加的搜索专题居然有密码。
都是兄弟院校嘛!何必那么小气。
回到正题,跟我写的上一篇关于求组成方案的背包思路基本一样,无非就是一个二维费用的背包换成了完全背包。如果说题目有什么亮点的话,那就是大数了。第一遍写的时候瞎了我的狗眼竟然没注意到,我的1A就这么没了。
关于组成方案的叙述,还是看我之前那篇结题报告吧:
#include#include #define N 1005int dp[N][N];int flag[N];int i,j;void Add(int x){ int i; int as=0; flag[j]=flag[j]>flag[x]?flag[j]:flag[x]; for(i=0;i =10) { as=1; dp[j][i]%=10; } } if(as) { flag[j]++; dp[j][i]=1; } return ;} int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF) { memset(dp,0,sizeof(dp)); memset(flag,0,sizeof(flag)); dp[0][0]=1; flag[0]=1; for(i=1;i<=m;i++) { for(j=i;j<=n;j++) { int x; x=j-i; Add(x); } } for(i=flag[n]-1;i>=0;i--) printf("%d",dp[n][i]); printf("\n"); } return 0;}