货币系统
描述
给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案。
输入
第一行为n和m。
输出
一行,方案数。
输入样例 1
3 10 //3种面值组成面值为10的方案 1 //面值1 2 //面值2 5 //面值5
输出样例 1
10 //有10种方案
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<int> currency(n);
for (int i = 0; i < n; ++i) {
cin >> currency[i];
}
vector<long long> dp(m + 1, 0);
dp[0] = 1;
for (int i = 0; i < n; ++i) {
for (int j = currency[i]; j <= m; ++j) {
dp[j] += dp[j - currency[i]];
}
}
cout << dp[m] << endl;
return 0;
}