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; }