1024. 装箱问题 - AcWing题库
直接将消耗的体积变成价值即可,最后利用总的体积减去价值即是剩余的空间
#include<bits/stdc++.h>
using namespace std;
int a[1000010];
int f[1000010];
int main()
{
int n,v;
cin>>v;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
for(int j=v;j>=a[i];j--)
{
f[j]=max(f[j],f[j-a[i]]+a[i]);
}
}
// for(int i=1;i<=v;i++)
// {
// cout<<f[i]<<" ";
// }
cout<<v-f[v]<<endl;
return 0;
}