hdu1028(母函数)
母函数原来学过一点,不过现在差不多是忘完了,再次学习,刚开始仍感觉不是那么好理解
1 #include <stdio.h> 2 using namespace std; 3 int main() 4 { 5 int n; 6 int a[121],b[121]; 7 int i,j,k; 8 while(1) 9 { 10 scanf("%d",&n); 11 for(i=0;i<=n;i++){a[i]=1;b[i]=0;} 12 for(i=2;i<=n;i++)//第几个多项式 13 { 14 for(j=0;j<=n;j++)//第i个多项式里面的第j个项的指数,这里依次递增 15 16 for(k=0;k+j<=n;k=k+i) 17 { 18 b[j+k]+=a[j]; 19 } 20 21 22 23 for(j=0;j<=n;j++) 24 { 25 a[j]=b[j]; 26 b[j]=0; 27 } 28 29 } 30 printf("%d\n",a[n]); 31 } 32 return 0; 33 }
另外推荐两个人的博客
http://www.matrix67.com/blog/?s=%E6%AF%8D%E5%87%BD%E6%95%B0
http://www.wutianqi.com/?p=596
感觉启发很大
令贴一精辟代码,我是没有看懂,请指教
1 #include <stdio.h> 2 int main() 3 { 4 int a[121]={0},i,j,n; 5 for(i=1,a[0]=1;i<=120;i++) 6 for(j=0;i+j<=120;j++) 7 a[i+j]+=a[j]; 8 while(scanf("%d",&n)!=EOF) 9 printf("%d\n",a[n]); 10 return 0; 11 }
名副其实的短小精悍啊