题解 | #[NOIP2001]装箱问题#动态规划
[NOIP2001]装箱问题
https://www.nowcoder.com/practice/55100a6608ad4656849dbd1f16d044cb
#include <bits/stdc++.h> using namespace std; int V,n; int dp[50][20000]; int v[50]; int main() { cin>>V>>n; for(int i=1;i<=n;i++) cin>>v[i]; for(int i=1;i<n+1;i++) { for(int j=1;j<=V;j++) { if(j>=v[i]) dp[i][j]=max(dp[i-1][j],dp[i-1][j-v[i]]+v[i]); else dp[i][j]=dp[i-1][j]; } } cout<<V-dp[n][V]; return 0; }