首页 > 代码库 > HDU 2069二维母函数
HDU 2069二维母函数
显然母函数,有一个地方需要注意。当输入0时,只有一种方法,所以输出1。
代码:
1 #include <stdio.h> 2 #include <string.h> 3 #include <algorithm> 4 #include <iostream> 5 using namespace std; 6 int c1[255][111], c2[255][111]; 7 main() 8 { 9 10 int n, i, j, k, l; 11 int a[]={0,1,5,10,25,50}; 12 while(scanf("%d",&n)!=EOF) 13 { 14 if(n==0){ //n==0 15 cout<<1<<endl; 16 continue; 17 } 18 memset(c1,0,sizeof(c1)); 19 memset(c2,0,sizeof(c2)); 20 for(i=0;i<=n&&i<=100;i++) //初始边界 21 c1[i][i]=1; 22 for(i=2;i<=5;i++) 23 { 24 for(j=0;j<=n;j++) 25 { 26 for(k=0;k*a[i]+j<=n;k++) 27 for(l=0;l+k<=100;l++) 28 c2[k*a[i]+j][l+k]+=c1[j][l]; 29 } 30 for(k=0;k<=n;k++) 31 { 32 for(l=0;l<=100;l++) 33 { 34 c1[k][l]=c2[k][l]; 35 c2[k][l]=0; 36 } 37 } 38 } 39 int sum=0; 40 for(l=0;l<=100;l++) 41 sum+=c1[n][l]; 42 printf("%d\n",sum); 43 } 44 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。