题解 | #[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;
}
查看7道真题和解析