经典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 }

 

posted @ 2015-07-22 19:43  相儒以沫  阅读(158)  评论(0编辑  收藏  举报