HDU 2602 Bone Collector(01背包模板题)

01背包模板题

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define maxn 1010
int v[maxn],w[maxn],f[maxn];
int main()
{
    int T,n,vn;
    scanf("%d",&T);
    while(T--){
        memset(f,0,sizeof(f));
        scanf("%d%d",&n,&vn);
        for(int i=1;i<=n;i++)
            scanf("%d",&w[i]);//价值 
        for(int i=1;i<=n;i++)
            scanf("%d",&v[i]);//体积 
        for(int i=1;i<=n;i++){
            for(int j=vn;j>=v[i];j--)
                f[j]=max(f[j],f[j-v[i]]+w[i]);
        }
        printf("%d\n",f[vn]);
    }
} 

 

posted @ 2017-02-03 21:12  despair_ghost  阅读(114)  评论(0编辑  收藏  举报