首页 > 代码库 > hdu2602Bone Collector(01背包)

hdu2602Bone Collector(01背包)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602

01背包

 1 #include <iostream>
 2 #include<algorithm>
 3 #include<cstring>
 4 using namespace std;
 5 int w[1010];
 6 int val[1010];
 7 int dp[1010];
 8 
 9 int main()
10 {
11     int t,n,v;
12     cin>>t;
13     while(t--)
14     {
15         int ans=0;
16         cin>>n>>v;
17         for(int i=0;i<n;i++)
18             cin>>val[i];
19         for(int i=0;i<n;i++)
20             cin>>w[i];
21         memset(dp,0,sizeof(dp));
22         for(int i=0;i<n;i++)
23             for(int j=v;j>=w[i];j--)
24             dp[j]=max(dp[j],dp[j-w[i]]+val[i]);
25         for(int i=0;i<=v;i++)
26             ans=max(ans,dp[i]);
27         cout<<ans<<endl;
28     }
29 }

 

hdu2602Bone Collector(01背包)