hdu 2152 母函数

    技术2022-05-18  12

    又一个母函数的应用,每种水果的价值都看成1,下面用输出样例举例子:

    2 2

    1 2

    1 2

    我们用母函数表示成这种形式:G(x)=(x+x^2)(x+x^2);

    3 5

    0 3

    0 3

    0 3

    上面表示成 G(x)=(0+x+x^2+x^3)(0+x+x^2+x^3)(0+x+x^2+x^3);

    把每种水果数量的最大值看成x的系数。

    #include<iostream> using namespace std; int Min[110]; int Max[110]; int c1[110]; int c2[110]; int main() { int n,m,i,k,j; while(scanf("%d%d",&n,&m)!=EOF) { for(i=0;i<n;i++) scanf("%d%d",&Min[i],&Max[i]); memset(c1,0,sizeof(c1)); memset(c2,0,sizeof(c2)); for(i=Min[0];i<=Max[0];i++) c1[i]=1; for(i=1;i<n;i++) { for(j=0;j<=m;j++) for(k=Min[i];k+j<=m&&k<=Max[i];k++) c2[k+j]+=c1[j]; for(j=0;j<=m;j++) { c1[j]=c2[j]; c2[j]=0; } } printf("%d/n",c1[m]); } return 0; }


    最新回复(0)