http://acm.hdu.edu.cn/showproblem.php?pid=2602

 

基础的01背包

#include<stdio.h>
#include<algorithm>
using namespace std;
struct Node
{
    int v;//value
    int w;//weight
}node[1005];
int main()
{
    int i,T,n,j,m;
    scanf("%d",&T);
    while(T--)
    {
        int bao[1005]={0};
        scanf("%d%d",&n,&m);
        for(i=1;i<=n;i++)
            scanf("%d",&node[i].v);
        for(i=1;i<=n;i++)
            scanf("%d",&node[i].w);
        for(i=1;i<=n;i++)
        {
            for(j=m;j>=node[i].w;j--)
            {
                bao[j]=max(bao[j],bao[j-node[i].w]+node[i].v);
            }
        }
        printf("%d\n",bao[m]);
    }
    return 0;
}

 

posted on 2017-02-21 00:47  benTuTuT  阅读(95)  评论(0编辑  收藏  举报