货币系统

来源:互联网 发布:免费发布网络推广平台 编辑:程序博客网 时间:2024/04/28 07:21

Problem Description

给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案。

Input

输入有多组数据,每组数据第一行:n,m的值,后面n行为每种货币的面值。

Output

对于每组数据输出组成面值为m的货币的方案数。

Sample Input

3 10                                1                                    2                                      5   

Sample Output

10


//类似于完全背包#include<stdio.h>#include<string.h>int a[10005];__int64 f[10005];int main(){    int n, m, i, j;    while(scanf("%d%d", &n, &m) != EOF)    {        memset(f, 0, sizeof(f));        f[0] = 1;        for(i = 1; i <= n; i++)            scanf("%d", &a[i]);        for(i = 1; i <= n; i++)            for(j = a[i]; j <= m; j++)                f[j] += f[j - a[i]];        printf("%I64d\n", f[m]);    }    return 0;}


0 0
原创粉丝点击