#include<stdio.h>
#include<string.h>
#define maxn 1100
int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int i,j,Case;
int bags,total;
int weight[maxn],value[maxn],f[maxn];
scanf("%d",&Case);
while(Case--)
{
scanf("%d%d",&bags,&total);
memset(f,0,sizeof(f));
for(i=1;i<=bags;i++)
scanf("%d",&value[i]);
for(i=1;i<=bags;i++)
scanf("%d",&weight[i]);
for(i=1;i<=bags;i++)
{
for(j=total;j>=weight[i];j--)
{
f[j]=max(f[j],f[j-weight[i]]+value[i]);
}
}
printf("%d\n",f[total]);
}
return 0;
}
转载于:https://blog.51cto.com/hpuwl2012/970320