Blog·Tanky WooABOUTRSS

HDOJ 2082 找单词

07 Aug 2010
这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2082


标准的母函数,直接套模版就OK了, 可以看看这篇:《母函数(Generating function)详解》 是我专门为母函数写的文章。

代码:

// Author: Tanky Woo
// HDOJ 2082
// 母函数
// Accepted 2082 0MS 200K 749 B C++ Tanky Woo 
#include 
#include 
#include 
#include 
using namespace std;

int alph[27];
int c1[55], c2[55];
int nCases;
int main()
{
    //freopen("input.txt", "r", stdin);
    scanf("%d", &nCases;);
    while(nCases--)
    {
        memset(c1, 0, sizeof(c1));
        memset(c1, 0, sizeof(c2));
        for(int i=1; i<=26; ++i)
            scanf("%d", &alph;[i]);
        for(int i=0; i<=50&&i;<=alph[1]; ++i)
            c1[i] = 1;
        for(int i=2; i<=26; ++i)
        {
            for(int j=0; j<=50; ++j)
                for(int k=0; k+j<=50&&k;<=i*alph[i]; k+=i)
                    c2[j+k] += c1[j];
            for(int j=0; j<=50; ++j)
            {
                c1[j] = c2[j];
                c2[j] = 0;
            }
        }
        __int64 sum = 0;
        for(int i=1; i<=50; ++i)
            sum += c1[i];
        printf("%I64d\n", sum);

    }
    return 0;
}