HDOJ 1028 Ignatius and the Princess III

       典型的母函数题目,所以无话可讲。直接套用公式求解即可。

//#include <fstream>
#include <iostream>
using namespace std;

int main()
{    
    //fstream cin("Ignatius and the Princess III.txt");
    unsigned num;
    while(cin>>num)
    {
        if(num==0)
            break;
        unsigned* coins=new unsigned[num+2];
        for (unsigned i=0;i<num+2;i++)
            coins[i]=1;
        unsigned* assist=new unsigned[num+2];
        memset(assist,0,sizeof(unsigned)*(2+num));
        for(unsigned i=2;i<=num;i++)
        {
            for(unsigned j=0;j<=num;j++)
                for(unsigned k=0;k+j<=num;k+=i)
                    assist[k+j]+=coins[j];
            for(unsigned j=0;j<=num;j++)
            {
                coins[j]=assist[j];
                assist[j]=0;
            }
        }
        cout<<coins[num]<<endl;
    }
    return 0;
}

posted on 2011-10-10 09:31  AdaByron  阅读(153)  评论(0)    收藏  举报

导航