Problem Description
给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案。
Input
输入有多组数据,每组数据第一行:n,m的值,后面n行为每种货币的面值。
Output
对于每组数据输出组成面值为m的货币的方案数。
Sample Input
3 10 1 2 5
Sample Output
10
# include<cstdio> # include<cstring> # include<iostream> using namespace std; __int64 f[10000]; int main() { //freopen("a.txt","r",stdin); int n,m; while(~scanf("%d%d",&n,&m)) { memset(f,0,sizeof(f)); f[0]=1; int i,j,k; for(i=0;i<n;i++) { scanf("%d",&k); for(j=k;j<=m;j++) f[j]+=f[j-k]; } printf("%I64d\n",f[m]); } return 0; }

本文详细阐述了在给定多种货币面额的情况下,如何计算组成特定面额的货币组合方案数量。通过实例输入输出,展示了算法的实现过程,并提供了解决该问题的代码示例。
912

被折叠的 条评论
为什么被折叠?



