题目链接:​​Bone Collector​

01背包裸题,不多说,记住一维的转移方程就可以AC这道题目了

#include <bits/stdc++.h>

using namespace std;

int main(){
int t,n,V,v[1005],w[1005],dp[1005];
cin>>t;
while(t--){
memset(dp,0,sizeof(dp));
cin>>n>>V;
for(int i = 1;i <= n;i++)
cin>>v[i];
for(int i = 1;i <= n;i++)
cin>>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]]+v[i]);
cout<<dp[V]<<endl;
}
return 0;
}