hdu 2069 母函数 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and 1-cent. For each input line, output a line containing the number of different wa
真的很气愤,这题的限制条件有严格控制,代码中体现,我都无语了
#include <stdio.h> #include <stdlib.h> int a[260][101],b[260][101];//第二维数组为硬币数 int main() { int i,j,k,l,n,sum; int c[5]={1,5,10,25,50}; for(i=0;i<=260;i++) for(j=0;j<=101;j++) { a[i][j]=0;b[i][j]=0; } for(i=0;i<=100;i++)//用面值为1的硬币组成价值为i(不超过100) { b[i][i]=1; } for(i=1;i<5;i++) { for(j=0;j<=260;j++) { for(k=0;j+k<=260;k+=c[i]) { for(l=0;(l+k/c[i])<=100;l++) a[k+j][l+k/c[i]]+=b[j][l]; } } for(j=0;j<=250;j++)//一定是250 否则过不了 不知道为什么 for(l=0;l<=100;++l) { b[j][l]=a[j][l]; a[j][l]=0; } } while(scanf("%d",&n)!=EOF) { sum=0; for(i=0;i<=100;i++) sum+=b[n][i]; printf("%d\n",sum); } return 0; }