hdu 2082 单词数

#include<stdio.h>
#include<string.h>
int main(){
    int num[30],c1[60],c2[60];
    int n,s,i,j,k,t;
    scanf("%d",&n);
    while(n--){
        memset(c1,0,sizeof(c1));
        memset(c2,0,sizeof(c2));
        for(i=1;i<=26;i++){
            scanf("%d",&num[i]);
        }
        for(i=0;i<=num[1];i++){
            c1[i]=1;//首先对c1初始化,由第一个表达式(1+x+x2+..xn)初始化,把单词从0到n的所有都初始化为1.
        }
        for(i=2;i<=26;i++){
            for(j=0;j<=50;j++){
                for(t=k=0;k+j<=50&&t<=num[i];k+=i,t++){
                    c2[j+k]+=c1[j];
                }
            }
            for(j=0;j<=50;j++){
                c1[j]=c2[j];
                c2[j]=0;
            }
        }
        for(s=0,i=1;i<=50;i++){
            s+=c1[i];
        }
        printf("%d\n",s);
    }
    return 0;
}
            
            
               

你可能感兴趣的:(hdu 2082 单词数)