每日AC

每日AC

许诺 · 发布于 2025-03-23 · 浏览 416 回复 0
#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;

}

特好心

全部回复 共 0 条

还没有人回复。往下写第一条。

发表回复