01背包模板题
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#define maxn 1005
int w[maxn], v[maxn], f[maxn];
int N, V, T;
int _max(int a, int b){
if(a > b) return a;
else return b;
}
int main()
{
scanf("%d", &T);
while(T--)
{
int i, j;
scanf("%d%d", &N, &V);
for(i = 0; i < N; i++){
scanf("%d", &v[i]);
}
for(i = 0; i < N; i++){
scanf("%d", &w[i]);
}
memset(f, 0, sizeof(f));
for(i = 0; i < N; i++){
for(j = V; j >= w[i]; j--){
f[j] = _max(f[j], f[j - w[i]] + v[i]);
}
}
printf("%d
", f[V]);
}
return 0;
}