hdu 2602

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

 1 #include<cstdio>  
 2 #include<iostream>  
 3 #include<algorithm>
 4 #include<math.h> 
 5 #include<string.h>  
 6 #include<vector> 
 7 #include<queue>
 8 #include<map>
 9 #include<iterator>
10 #include<vector>
11 #include<set>
12 using namespace std;
13 
14 int dp[10005],w[10005],v[10005];
15 
16 int main()
17 {
18     int cas,n,vol;
19     scanf("%d",&cas);
20     while(cas--)
21     {
22         scanf("%d %d",&n,&vol);
23         memset(dp,0,sizeof(dp));
24         
25         for(int i=1;i<=n;i++)
26             scanf("%d",&w[i]);
27         for(int i=1;i<=n;i++)
28             scanf("%d",&v[i]);
29         
30         for(int i=1;i<=n;i++)
31             for(int j=vol;j>=v[i];j--)
32             dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
33         printf("%d
",dp[vol]);
34      } 
35      return 0;
36 }
原文地址:https://www.cnblogs.com/pter/p/5397756.html