hud 2602 Bone Collector

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

思路:典型的01背包

 1 #include<stdlib.h>
 2 #include<time.h>
 3 #include <cstdio>  
 4 #include <cstring>  
 5 #include <cmath>  
 6 #include <cstdlib>  
 7 #include <ctime>  
 8 #include <iostream>  
 9 #include <algorithm>  
10 #include <vector>  
11 #include <queue>  
12 #include <map>  
13 #include <set>  
14 #include <string>  
15 using namespace std;
16 
17 #define N 10005
18 
19 int val[N],vol[N],dp[N];
20 
21 int main()
22 {
23     int num;
24     int n,space;
25     scanf("%d",&num);
26     while(num--)
27     {
28         scanf("%d %d",&n,&space);
29         for(int i=1;i<=n;i++)
30             scanf("%d",&val[i]);
31         for(int j=1;j<=n;j++)
32             scanf("%d",&vol[j]);
33         
34         memset(dp,0,sizeof(dp));
35         for(int i=1;i<=n;i++)
36         {
37              for(int j=space;j-vol[i]>=0;j--)
38              {
39                  dp[j]=max(dp[j],dp[j-vol[i]]+val[i]);
40              }
41 
42         }
43         printf("%d
",dp[space]);
44     }
45     return 0;
46 } 
原文地址:https://www.cnblogs.com/pter/p/4915687.html