AC
2023-07-19 16:02:02
发布于:广东
16阅读
0回复
0点赞
#include<iostream>
#include<algorithm>
#include <climits>
using namespace std;
int main() {
int giftCount;
cin >> giftCount;
int giftValues[giftCount];
for(int i = 0; i < giftCount; i++) {
cin >> giftValues[i];
}
int defenseLine;
cin >> defenseLine;
int dp[defenseLine+1];
dp[0] = 0;
for(int i = 1; i <= defenseLine; i++) {
dp[i] = INT_MAX;
for(int j = 0; j < giftCount; j++) {
if(i >= giftValues[j] && dp[i - giftValues[j]] != INT_MAX) {
dp[i] = min(dp[i], dp[i - giftValues[j]] + 1);
}
}
}
if(dp[defenseLine] == INT_MAX) {
cout << -1 << endl;
} else {
cout << dp[defenseLine] << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个