题解 | #[NOIP2001]装箱问题#
[NOIP2001]装箱问题
https://www.nowcoder.com/practice/55100a6608ad4656849dbd1f16d044cb
#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;
//目的就是计算能够装的最大体积
//首先定义dp[j]表示箱内容量为j时体积最大值
int main() {
int m;
int n;
cin>>m>>n;
int v[n];
vector <int> dp(m+1,0);
for(int i=0;i<n;i++){
cin>>v[i];
}
for(int i=0;i<n;i++){
for(int j=m;j>0;j--){
if(v[i]<=j){
dp[j]=max(dp[j],dp[j-v[i]]+v[i]);
}
}
}
cout<<m-dp[m];
return 0;
}
// 这段代码完全可以背诵



