NYOJ 289 苹果 (dp问题之01背包)
地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=289
思路:同NYOJ 49 开心的小明 动态规划问题dp
代码如下:
1 #include <stdio.h> 2 #include <string.h> 3 #define N 1001 4 int dp[N]; 5 int c[N],w[N]; 6 int max(int x,int y) 7 { 8 return x>y?x:y; 9 } 10 int main() 11 { 12 int n,v,i,j; 13 while (scanf("%d%d",&n,&v)&&(n||v)) 14 { 15 for(i=0;i<n;i++) 16 scanf("%d%d",&c[i],&w[i]); 17 memset(dp,0,sizeof(dp)); 18 for(i=0;i<n;i++) 19 { 20 for(j=v;j>=c[i];j--) 21 { 22 dp[j]=max(dp[j],dp[j-c[i]]+w[i]); 23 } 24 } 25 printf("%d\n",dp[v]); 26 } 27 return 0; 28 }