标签:
Description
Input
Output
Sample Input
1 5 10 1 2 3 4 5 5 4 3 2 1
Sample Output
14
题目大意:有N个数,背包的容量为V,第一行为价值,第二行为对应的体积。那么题目就简单了。著名的背包问题
for(i=0;i<n;i++)
for(j=v;j>=volum[i];j--)
bb[j]=max(bb[j],bb[j-volum[i]]+value[i]);//模板哟
代码如下:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int main()
{ int value[1000],volum[1000],bb[1000],n,v,t,i,j;
scanf("%d",&t);
while(t--)
{ scanf("%d%d",&n,&v);
for(i=0;i<n;i++)
scanf("%d",&value[i]);
for(i=0;i<n;i++)
scanf("%d",&volum[i]);
memset(bb,0,sizeof(bb));
for(i=0;i<n;i++)
for(j=v;j>=volum[i];j--)
bb[j]=max(bb[j],bb[j-volum[i]]+value[i]);//不断更新每个体积可以放的最大价值。
printf("%d\n",bb[v]);
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/441179572qqcom/p/5743608.html