有位骨头收藏家喜欢收集各种各样的骨头,不同的骨头有不同的体积和价值。这个收藏家有一个体积为V的背包,请计算他可以收藏的最大价值。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define de(x) cout<<x<<" ";
#define sf(x) scanf("%d",&x);
#define Pu puts("");
const int N=1e5+10;
int n,v;
int w[N],u[N];
int dp[N];
int main(){
int T;cin>>T;
while(T--){
cin>>n>>v;
for(int i=1;i<=n;i++){
sf(u[i])
}
for(int i=1;i<=n;i++){
sf(w[i])
}
for(int i=1;i<=n;i++){
for(int j=v;j>=w[i];j--){
dp[j]=max(dp[j],dp[j-w[i]]+u[i]);
}
}
}
printf("%d\n",dp[v]);
return 0;
}