HDOJ 1398 Square Coins
母函数“第一季”,无压力AC~

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