Posted on 2010-08-05 13:02
MiYu 閱讀(653)
評論(0) 編輯 收藏 引用 所屬分類:
ACM ( 母函數 ) 、
C/C++
//MiYu原創, 轉帖請注明 : 轉載自 ______________白白の屋
題目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=1398
也是一道基礎的 母函數題目 , 詳細可以參照 母函數 ( Generating function ) 詳解
代碼如下 :
//MiYu原創, 轉帖請注明 : 轉載自 ______________白白の屋
#include <iostream>
using namespace std;
int num1[11111];
int num2[11111];
int main ()
{
int N;
while ( cin >> N , N )
{
for ( int i = 0 ; i <= N; ++ i )
{
num1[i] = 1;
num2[i] = 0;
}
for ( int i = 2; i <= 17; ++ i )
{
for ( int j = 0;j <= N; ++ j )
{
for ( int k = 0; k + j <= N; k += i * i )
{
num2[j + k] += num1[j];
}
}
for ( int j = 0; j <= N; ++ j )
{
num1[j] = num2[j];
num2[j] = 0;
}
}
cout << num1[N] << endl;
}
return 0;
}