这篇博客是从旧博客 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;
}