您的位置:首页 > 其它

hdu 2069 Coin Change(母函数)

2016-04-26 10:25 267 查看
题意:给你50   25   10  5   1硬币各一些 问你组成某个数的不同方案数  但是注意 硬币的个数不超过一百个 所以这题要控制硬币的个数

用二维数组控制

AC代码:

#include<iostream>

#include<cstring>

#include<cstdio>

using namespacestd;

inta[10005][105],b[10005][105];

int f[6] ={0,1,5,10,25,50};

int sum[251];

void init()

{

    int i1,j1,k1,p1,q1,ans;

        memset(a,0,sizeof(a));

        memset(b,0,sizeof(b));

        a[0][0] = 1;

        for(int i = 1; i <= 5; i++)

        {

            for(int j = 0; j <= 250; j++)

                for(int k = 0;k*f[i]+j<=250; k++)

                    for(int p = 0; k+p<=100;p++)    ///用来控制个数

                      b[k*f[i]+j][k+p] += a[j][p];

            for(int j = 0; j <= 250; j++)

                for(int p = 0; p <= 100;p++)

                {

                    a[j][p] = b[j][p];

                    b[j][p] = 0;

                }

        }

        sum[0] = 1;

        for(int i = 1; i <= 250; i++)

            for(int j = 0; j <= 100; j++)

             sum[i]+=a[i][j];

 

}

int main()

{

    int t;

    init();

    while(~scanf("%d",&t))

    {

        printf("%d\n",sum[t]);

    }

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  母函数