hdu 1028 母函数
题意:给定整数N,将其分成若干正数的和(正数可以相同),问有多少种方案?
例如N=4,有:
4 = 4;
4 = 3 + 1;
4 = 2 + 2;
4 = 2 + 1 + 1;
4 = 1 + 1 + 1 + 1; 共5种方案。
分析:(1+x+x2+x3...)*(1+x2+x4+x6...)*(1+x3+x6+x9...)....
const int N = 120; int a[2][N+1], p, q; int n; void init(){ a[0][0] = 1; FOE(i, 1, N){ p = 1-q; FOE(j, 0, N) if(a[q][j]) { for(int k=0; j+k*i<=N; k++){ a[p][j+k*i] += a[q][j]; } } memset(a[q], 0, sizeof a[q]); q = p; } } int main(){ #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); #endif init(); while(~scanf("%d", &n)) printf("%d\n", a[q][n]); return 0; }