HDOJ 1028 Ignatius and the Princess III

    整数拆分,母函数的那首绝活~

View Code
 1 //#include <fstream>   
2 #include <iostream>
3 using namespace std;
4
5 int main()
6 {
7 //fstream cin("Ignatius and the Princess III.txt");
8 unsigned num;
9 while(cin>>num)
10 {
11 if(num==0)
12 break;
13 unsigned* coins=new unsigned[num+2];
14 for (unsigned i=0;i<num+2;i++)
15 coins[i]=1;
16 unsigned* assist=new unsigned[num+2];
17 memset(assist,0,sizeof(unsigned)*(2+num));
18 for(unsigned i=2;i<=num;i++)
19 {
20 for(unsigned j=0;j<=num;j++)
21 for(unsigned k=0;k+j<=num;k+=i)
22 assist[k+j]+=coins[j];
23 for(unsigned j=0;j<=num;j++)
24 {
25 coins[j]=assist[j];
26 assist[j]=0;
27 }
28 }
29 cout<<coins[num]<<endl;
30 }
31 return 0;
32 }



posted on 2011-07-31 22:17  AdaByron  阅读(197)  评论(0编辑  收藏  举报

导航