hdu1284錢幣兌換問題(母函數)

題目鏈接:hdu1284錢幣兌換問題

母函數:(1+x+x^2+x^3+...)(1+x^2+x^4+x^6+...)(1+x^3+x^6+...)

雖然之前看過,好久不做就會生疏,加緊複習呀

#include<cstdio>
#include<cstring>
using namespace std;
const int num=32770;
int dp[num],c[3]={1,2,3},c1[num],c2[num];
     //c1記錄最終結果 c2記錄每次運算的結果
void init()
{
    int i,j,k;
    for(i=0;i<num;i++)
    {
        c1[i]=1;c2[i]=0;
    }
    for(i=1;i<3;i++)
    {
        for(j=0;j<num;j++)
            for(k=0;k+j<num;k+=c[i])
                c2[j+k]+=c1[j];
        for(j=0;j<num;j++)
        {
            c1[j]=c2[j];
            c2[j]=0;
        }
    }
}
int main()
{
    int n;
    init();
    while(scanf("%d",&n)!=EOF)
    {
        printf("%d\n",c1[n]);
    }
    return 0;
}


發佈了50 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章