经典01背包问题 HDU2602
1 #include <cstring> 2 #include <iostream> 3 #include <algorithm> 4 5 using namespace std; 6 7 int dp[1010]; 8 int v[1010]; 9 int w[1010]; 10 11 int main() 12 { 13 int t; 14 cin>>t; 15 while(t--) 16 { 17 long long int n,tv; 18 cin>>n>>tv; 19 for(int i=0;i<n;i++) 20 cin>>v[i]; 21 for(int i=0;i<n;i++) 22 cin>>w[i]; 23 memset(dp,0,sizeof(dp)); 24 for(int i=0;i<n;i++) 25 { 26 for(int j=tv;j>=w[i];j--) 27 { 28 dp[j]=max(dp[j-w[i]]+v[i],dp[j]); 29 } 30 } 31 cout<<dp[tv]<<endl; 32 } 33 return 0; 34 }