标签:
题目链接: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\n",dp[space]); 44 } 45 return 0; 46 }
标签:
原文地址:http://www.cnblogs.com/pter/p/4915687.html