题目:0-1背包
代码:
#include<iostream>
#include<sstream>
#include<string>
#include<cstring>
#include<set>
#include<fstream>
using namespace std;
int dp[1001];
int vol[1001],va[1001];
int max(int a,int b){
if(a>b) return a;
else return b;
}
int main(){
int t,n,v;
cin>>t;
while(t--){
cin>>n>>v;
memset(dp,0,sizeof(dp));
for(int i=0;i<n;i++) cin>>va[i];
for(int i=0;i<n;i++) cin>>vol[i];
for(int i=0;i<n;i++)
for(int j=v;j>=vol[i];j--){
dp[j]=max(dp[j],dp[j-vol[i]]+va[i]);
}
cout<<dp[v]<<endl;
}
return 0;
}