苹果 简单的 01 背包
最简单的背包 直接上代码吧 .
1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<iostream> 5 #include<algorithm> 6 #include<queue> 7 #include<vector> 8 #include<set> 9 #include<stack> 10 #include<string> 11 #include<sstream> 12 #include<map> 13 #include<cctype> 14 #include<limits.h> 15 using namespace std; 16 #define LEN 1005 17 int c[LEN],w[LEN],dp[LEN]; 18 int main() 19 { 20 int n,V; 21 while(scanf("%d%d",&n,&V)&&!(n==V&&n==0)) 22 { 23 for(int i=0;i<n;i++) 24 scanf("%d%d",&c[i],&w[i]); 25 memset(dp,0,sizeof(dp)); 26 for(int i=0;i<n;i++) //一个个的 苹果 27 { 28 for(int j=V;j>=0;j--) 29 { 30 if(j<c[i]) 31 continue; 32 dp[j]=dp[j]>dp[j-c[i]]+w[i]?dp[j]:dp[j-c[i]]+w[i]; 33 } 34 } 35 printf("%d\n",dp[V]); 36 } 37 return 0; 38 }