找单词

http://acm.hdu.edu.cn/showproblem.php?pid=2082

#include<stdio.h>
#include<string.h>
int main()
{
    //freopen("in.txt","r",stdin);
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int num;
        int a[60],b[60];
        int i,j,k;
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        a[0]=1;
        for( i=1;i<=26;i++)
        {
            scanf("%d",&num);
            if(num==0) continue;
            for(j=0;j<=50;j++)
            {
                for(k=0;k<=num&&k*i+j<=50;k++)
                    b[k*i+j]+=a[j];
            }
            for(j=0;j<=50;j++)
            {
                a[j]=b[j];
                b[j]=0;
            }
        }
        int tot=0;
        for(i=1;i<=50;i++)
            tot+=a[i];
        printf("%d
",tot);
    }
    return 0;
}
View Code
原文地址:https://www.cnblogs.com/lyf123456/p/3441862.html