每日AC

许诺  •  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;

}

特好心


评论:

请先登录,才能进行评论