Problem1867--货币系统

1867: 货币系统

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MiB

Description

给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案。样例:设n=3,m=10,要求输入和输出的格式如下:

Input

第一行有两个数,分别表示n种面值组成面值为m的方案。
接下来n行,每行一个数,表示面值。

(1<= n<=25),(1<= m<=10,000)


Output

方案数。

Sample Input Copy

3 10
1
2
5

Sample Output Copy

10

HINT

设dp[i][j]表示前i种货币构成j的方法数,用cc记录货币的面值,状态转移方程为:

dp[i][j]=dp[i-1][j]    不用第i种货币
       +dp[i][j-cc[i]]    用第i种货币,j>=cc[i]
时间复杂度是O(VN)的,如果把面值相同的货币记做一种,可以更快一些。

Source/Category