本文版权归点A点C和博客园共有,欢迎转载,但必须保留此段声明,并给出原文连接,谢谢合作!!!

hdu1398 Square Coins(母函数、完全背包)

#include<stdio.h>
int t[301];
int b[301];
int main()
{
    int n,i,j,k;
    while(scanf("%d",&n)!=EOF&&n)
    {
        for(i=0;i<=n;i++)
        {
           t[i]=1;
           b[i]=0;
        }
        for(i=2;i<=17;i++)
        {
            for(j=0;j<=n;j++)
            {
                for(k=0;j+k<=n;k+=i*i)
                {
                    b[j+k]+=t[j];
                }
            }
            for(j=0;j<=n;j++)
            {
                t[j]=b[j];
                b[j]=0;
            }
        }
        printf("%d\n",t[n]);
    }
}

posted on 2012-11-22 18:56  点A点C  阅读(208)  评论(0编辑  收藏  举报

导航