1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<math.h> 5 using namespace std; 6 int back[1010]; 7 int main() 8 { 9 int n,v,c,w,i,j; 10 while(scanf("%d%d",&n,&v),n||v) 11 { 12 memset(back,0,sizeof(back)); 13 for(i=0;i<n;i++) 14 { 15 scanf("%d%d",&c,&w); 16 for(j=v;j>=c;j--) 17 back[j]=back[j-c]+w>back[j]?back[j-c]+w:back[j]; 18 } 19 printf("%d ",back[v]); 20 } 21 return 0; 22 }
简单的01背包