code[vs] 1014 装箱问题(01背包)

来源:互联网 发布:单片机datesheet是什么 编辑:程序博客网 时间:2024/05/01 07:36
/*作者:桦清_L*/#include <iostream>#include <stdio.h>#include <string>#include <string.h>#include <algorithm>using namespace std;int dp[20001];int a[21];int main(){    int v,n;    cin>>v>>n;    memset(dp,0,sizeof(dp));    memset(a,0,sizeof(a));    for(int i=0;i<n;i++)    {        cin>>a[i];        for(int j=v;j>=0;j--)  //01背包必须从大到小 保证每种物品重复取        {            if(a[i]>j) continue;            /*空间为j时,占用的最大体积*/            dp[j]=max(dp[j],dp[j-a[i]]+a[i]);        }    }    cout<<v-dp[v]<<endl;    return 0;}

0 0
原创粉丝点击