标签:
1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<iostream> 5 #include<limits.h> 6 #include<algorithm> 7 #include<queue> 8 #include<vector> 9 #include<set> 10 #include<stack> 11 #include<string> 12 #include<sstream> 13 #include<map> 14 #include<cctype> 15 using namespace std; 16 int main() 17 { 18 int t,w[2005],v[2005],V,n,dp[50005]; 19 scanf("%d",&t); 20 while(t--) 21 { 22 scanf("%d%d",&n,&V); 23 memset(v,0,sizeof(v)); 24 for(int i=0;i<n;i++) 25 scanf("%d%d",&w[i],&v[i]); 26 dp[0]=0; 27 for(int i=1;i<50005;i++) 28 dp[i]=INT_MIN/10; 29 for(int i=0;i<n;i++) 30 { 31 for(int j=V;j>=w[i];j--) 32 { 33 dp[j]=dp[j]>dp[j-w[i]]+v[i]?dp[j]:dp[j-w[i]]+v[i]; 34 } 35 } 36 if(dp[V]<0) 37 printf("No\n"); 38 else 39 printf("%d\n",dp[V]); 40 } 41 return 0; 42 }
标签:
原文地址:http://www.cnblogs.com/A-FM/p/5457276.html