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  }

posted on 2012-08-17 19:17  mycapple  阅读(334)  评论(0编辑  收藏  举报

导航