题解
2026-08-23 17:14:23
发布于:上海
2阅读
0回复
0点赞
就是普通的01背包,可用一位或者二维,我用的是一维,注意理解
#include<bits/stdc++.h>
using namespace std;
int h, n, s[505], dp[45005];
int main(){
cin >> h >> n;
for(int i = 1; i <= n; i++) cin >> s[i];
for(int i = 1; i <= n; i++){
for(int j = h; j >= s[i]; j--){
dp[j] = max(dp[j], dp[j-s[i]]+s[i]);
}
}
cout << dp[h];
return 0;
}
看懂了给个赞呗
这里空空如也








有帮助,赞一个