许诺 • 18天前
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, s;
cin >> n >> s;
vector<int> coins(n);
for (int i = 0; i < n; ++i) {
cin >> coins[i];
}
vector<int> dp(s + 1, s + 1);
dp[0] = 0;
for (int i = 1; i <= s; ++i) {
for (int coin : coins) {
if (coin <= i) {
dp[i] = min(dp[i], dp[i - coin] + 1);
}
}
}
if (dp[s] > s) {
cout << -1 << endl;
} else {
cout << dp[s] << endl;
}
return 0;
}
特好心
评论:
请先登录,才能进行评论