hdu 1398 Square Coins (母函数)

#include<stdio.h>
#include<string.h>
int main()
{
    int i,j,k,n,a[18][301];
    memset(a,0,sizeof(a));
    for(i=0;i<301;i++)
        a[1][i]=1;
    for(i=2;i<18;i++)
    {
        for(j=0;j<301;j++)
            for(k=0;j+i*i*k<301;k++)
                a[i][j+i*i*k]+=a[i-1][j];
    }
    while(scanf("%d",&n)==1 && n)
    {
        printf("%d\n",a[17][n]);
    }
    return 0;
}

你可能感兴趣的:(hdu 1398 Square Coins (母函数))