AC

许诺  •  1个月前


#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;

}


评论:

请先登录,才能进行评论