hdu 2602
#include <iostream>
#include <cmath>
#include <stdio.h>
#include <string.h>
#include <memory.h>
using namespace std;
const int N=1005;
int vol[N],pv[N],val[N];
int max(int x,int y)
{
return(x>y?x:y);
}
int main()
{
int n,v,test;
cin>>test;
while(test--)
{
cin>>n>>v;
for(int i=1;i<=n;i++)
cin>>pv[i];
for(int i=1;i<=n;i++)
cin>>vol[i];
for(int i=0;i<=v;i++)
val[i]=0;
for(int t=1;t<=n;t++)
{
for(int i=v;i>=0;i--)
{
if(i>=vol[t])
{
val[i]=max(val[i],val[i-vol[t]]+pv[t]);
}
}
}
cout<<val[v]<<endl;
}
return 0;
}

浙公网安备 33010602011771号