ctest有n个苹果,要将它放入容量为v的背包。给出第i个苹果的大小和价钱,求出能放入背包的苹果的总价钱最大值。
3 3 1 1 2 1 3 1 0 0
2
#include <stdio.h> #include <string.h> int f[1010][1010]={0}; int main() { int n,v; while(scanf("%d %d",&n,&v),n||v) { int i,j,c,w; memset(f,0,sizeof(f)); for(i=1;i<=n;i++) { scanf("%d %d",&c,&w); for(j=0;j<=v;j++) { f[i][j]=f[i-1][j]; if(j>=c) { if(f[i][j]<(f[i-1][j-c]+w)) f[i][j]=f[i-1][j-c]+w; } } } printf("%d\n",f[n][v]); } return 0; }
动态规划之01背包问题
nyoj_289_苹果_20140307,布布扣,bubuko.com
原文:http://www.cnblogs.com/xl1027515989/p/3603205.html