Mr Zz

导航

Bone Collector

背包模板题  so so easy

题目原意就是 给个包  给各种骨头 都有价值和体积 求最大值  01

#include<iostream>

#include<cstring>

#include<stdio.h>

#include<stdlib.h>

using namespace std;

int f[1500];

int v[1500];

int w[1500];

int main(){

int n,m,vv;

//freopen("t.txt","r",stdin);

while(scanf("%d",&m)!=EOF) {

while(m--) {

scanf("%d%d",&n,&vv);

memset(f,0,sizeof(f));

memset(w,0,sizeof(w));

memset(v,0,sizeof(v));

for(int i=1;i<=2*n;i++) {

if(i<=n){

scanf("%d",&v[i]);

}

else

scanf("%d",&w[i-n]);

}

for(int i = 1;i <= n;i++) {

for(int j = vv;j>=w[i];j--) {

f[j] = max(f[j],f[j-w[i]]+v[i]);

}

}

printf("%d\n",f[vv]);

}

}

return 0;

}



posted on 2011-10-09 14:23  Mr Zz  阅读(113)  评论(0)    收藏  举报