P1049 装箱问题
01背包Code:
#include<iostream>
#define ll long long
using namespace std;
int main(){
ll n,m,weight[30],dp[20010]={0};cin>>m>>n;
for(ll i=0;i<n;i++)cin>>weight[i];
for(ll i=0;i<n;i++)
for(ll j=m;j>=weight[i];j--)
dp[j]=max(dp[j],dp[j-weight[i]]+weight[i]);
cout<<m-dp[m]<<endl;
}