01背包;
写个留做纪念~~
#include <iostream>
using namespace std;
struct pack
{
int c,w;
};
pack p[1000];
int f[1001];
int v;
void zpack(pack p)
{
for(int i=v;i>=p.c;i--)
f[i]=max(f[i],f[i-p.c]+p.w);
}
int main()
{
int t;
cin>>t;
while(t--)
{
int N;
cin>>N>>v;
for(int i=1;i<=N;i++) cin>>p[i].w;
for(int i=1;i<=N;i++) cin>>p[i].c;
memset(f,0,sizeof(f));
for(int i=1;i<=N;i++)
zpack(p[i]);
cout<<f[v]<<endl;
}
return 0;
}