HDU 2602 Bone Collector(01背包)

来源:互联网 发布:义乌淘宝培训哪里好 编辑:程序博客网 时间:2024/06/05 11:12
题意:n个数,还有背包容积M,接下来两行,第一行代表这n个数的价值,第二行代表n个数对应的体积。求,背包最多可以装多少价值的东西
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define LL long longconst LL maxm=1e4+10;LL dp[maxm];LL w[maxm];LL v[maxm];int main(){    LL t;    scanf("%lld",&t);    while(t--)    {        LL m,n;        scanf("%lld%lld",&m,&n);        memset(dp,0,sizeof(dp));        for(LL i=0;i<m;i++)        {            scanf("%lld",&v[i]);        }        for(LL i=0;i<m;i++)        {            scanf("%lld",&w[i]);        }        for(LL i=0;i<m;i++)        {            for(LL j=n;j>=w[i];j--)            {                dp[j]=max(dp[j],dp[j-w[i]]+v[i]);            }        }        printf("%lld\n",dp[n]);    }    return 0;}

0 0
原创粉丝点击