许诺 • 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;
}
评论:
请先登录,才能进行评论