AC

许诺 · 发布于 2025-04-28 · 浏览 334 回复 0
#include <iostream>
#include <vector>
#include <climits>

using namespace std;

int main() {

vector<int> cost(11); // cost[1..10]
for (int i = 1; i <= 10; ++i) {
    cin >> cost[i];
}
int n;
cin >> n;

vector<int> dp(n + 1, INT_MAX);
dp[0] = 0; // base case

for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= 10; ++j) {
        if (j <= i && dp[i - j] != INT_MAX) {
            dp[i] = min(dp[i], dp[i - j] + cost[j]);
        }
    }
}

cout << dp[n] << endl;
return 0;

}

全部回复 共 0 条

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

发表回复