hdu 2082 找单词 (母函数)

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define LL __int64
using namespace std;
int num[30];
int c1[100];
int c2[100];
void fun()
{
    int i,j,k,l;
    memset(c2,0,sizeof(c2));
    memset(c1,0,sizeof(c1));
    c1[0]=1;
    for(i=1;i<=26;i++)
    {
        for(j=0;j<=50;j++)
        {
            for(k=0,l=0;k+j<=50&&l<=num[i];k+=i,l++)
            {
                c2[j+k]+=c1[j];
            }
        }

        for(j=0;j<=50;j++)
        {
            c1[j]=c2[j];
            c2[j]=0;
        }
    }
}

int main()
{
    int n,m,t;
    int i,j,k;
    scanf("%d",&t);
    while(t--)
    {
        for(i=1;i<=26;i++)
        {
            scanf("%d",&num[i]);
        }
        fun();
        int sum=0;
        for(i=1;i<=50;i++)
        {
            sum+=c1[i];
        }
        printf("%d
",sum);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/sola1994/p/4738006.html