/*
简单的0-1背包问题
刚开始感觉f[0]一般不会被赋值,也就没初始化它
但是数据有点叼,居然有体积为0价值不为0的骨头
这样f[0]就被赋值了
若不每次都初始化,后面的测试实例一上来,f[0]就有一非0值
*/
#include<stdio.h>
int c[1100],w[1100],f[1100];
int main()
{
int t,n,v,i,j;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&v);
for(i=0;i<=v;i++)
f[i]=0;
for(i=0;i<n;i++)
scanf("%d",&w[i]);
for(i=0;i<n;i++)
scanf("%d",&c[i]);
for(i=0;i<n;i++)
{
for(j=v;j>=c[i];j--)
{
if((f[j-c[i]]+w[i])>f[j])
f[j]=f[j-c[i]]+w[i];
}
}
printf("%d\n",f[v]);
}
return 0;
}
hdu 2602 Bone Collector--DP
最新推荐文章于 2024-07-29 13:41:29 发布