码迷,mamicode.com
首页 > 其他好文 > 详细

HDU2082 找单词

时间:2015-01-18 18:28:43      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:

母函数

#include<cstdio>
#include<string.h>
#define min(a,b) ((a)<(b)?(a):(b))
int N,v[26],n[26],a[55],b[55],i,j,k,last,last2,sum;
int main()
{   
    scanf("%d",&N);
    while(N--){
        for(i=0;i<26;++i){
            scanf("%d",&n[i]);
            v[i]=i+1;
        }
        a[0]=1;
        last=0;
        for(i=0;i<26;++i){
            last2=min(last+n[i]*v[i],50);
            memset(b,0,sizeof(int)*(last2+1));
            for(j=0;j<=n[i]&&j*v[i]<=last2;++j)
                for(k=0;k<=last&&k+j*v[i]<=last2;++k)
                    b[k+j*v[i]]+=a[k];
            memcpy(a,b,sizeof(int)*(last2+1));
            last=last2;
        }
        sum=0;
        for(i=1;i<=50;++i)
            sum+=a[i];
        printf("%d\n",sum);
    }
    return 0;
}

 

HDU2082 找单词

标签:

原文地址:http://www.cnblogs.com/-Unc/p/4232018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!