hdu 2082 找单词 母函数

来源:互联网 发布:js undefined判断 编辑:程序博客网 时间:2024/06/11 05:48

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

母函数模板题:

思路假如 有  (x^0+x^2+x^4)*(x^0+x^3+x^6)*(x^0+x^4+x^8)*(....)*(........)

                           1                       2                 3                4    ..n

先算  1与2 能组合成多少种,假如结果为t1,那么算t1与3能有多少种,依次可得

代码:

//母函数#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main(){    int t;    while(cin>>t)    {        while(t--)        {            int a[100]={0},b[100]={0},c[100]={0};            int i,j,g;            int k=50;            for(i=1;i<=26;i++)            {                cin>>a[i];            }            for(i=1;i<=26;i++)            {                if(a[i])                {                    for(j=0;j<=a[i]&&i*j<=k;j++)                    {                        b[i*j]=1;                    }                    break;                }            }            for(i=i+1;i<=26;i++)            {                if(a[i])                {                    for(j=0;j<=50;j++)                    {                        if(b[j])                        {                            for(g=0;g<=a[i]&&i*g+j<=k;g++)                            {                                c[i*g+j]+=b[j];                            }                        }                    }                for(j=0;j<=k;j++)                {                    b[j]=c[j];                    c[j]=0;                }                }            }            int sum=0;            for(i=1;i<=k;i++)            {                sum+=b[i];            }            cout<<sum<<endl;        }    }    return 0;}


0 0
原创粉丝点击