• NYOJ 289


     

    苹果

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:2
     
    描述

    ctest有n个苹果,要将它放入容量为v的背包。给出第i个苹果的大小和价钱,求出能放入背包的苹果的总价钱最大值。

     

     
    输入
    有多组测试数据,每组测试数据第一行为2个正整数,分别代表苹果的个数n和背包的容量v,n、v同时为0时结束测试,此时不输出。接下来的n行,每行2个正整数,用空格隔开,分别代表苹果的大小c和价钱w。所有输入数字的范围大于等于0,小于等于1000。
    输出
    对每组测试数据输出一个整数,代表能放入背包的苹果的总价值。
    样例输入
    3 3
    1 1
    2 1
    3 1
    0 0
    样例输出
    2
    
     1 #include<stdio.h>
     2 int max(int a,int b)
     3 {
     4     return a>b?a:b;
     5 }
     6 int main()
     7 {
     8     int i,j,n,v,c,w;
     9     while(scanf("%d%d",&n,&v),n||v)
    10     {
    11         int b[1001]={0};
    12         for(i=1;i<=n;i++)
    13         {
    14             scanf("%d%d",&c,&w);
    15             for(j=v;j>=c;j--)
    16                 b[j]=max(b[j-c]+w,b[j]);
    17         }
    18         printf("%d\n",b[v]);
    19     }
    20 }                
     1  
     2 #include <iostream>
     3 #include <cstring>
     4 #include <cstdlib>
     5 #include <algorithm>
     6 using namespace std;
     7 
     8 int f[1010][1010] = {0};
     9 
    10 int main()
    11 {
    12     int i,j,k;
    13     int n,cap;
    14     while(cin>>n>>cap,n||cap)
    15     {
    16         memset(f,0,sizeof(f));
    17         int c,v;
    18         for(i=1; i<=n; i++)
    19         {
    20             cin>>c>>v;
    21             for(j=0; j<=cap; j++)//从0开始 
    22             {
    23                 f[i][j] = f[i-1][j];
    24                 if(j>=c)//不加的话可能j-c就溢出了 ,而且是wa 
    25                     if(f[i][j]<(f[i-1][j-c] + v))//小于符号,不是大于 
    26                         f[i][j] = f[i-1][j-c] + v;
    27             }
    28         }
    29         cout<<f[n][cap]<<endl;
    30     }
    31     return 0;
    32 }
    33         
  • 相关阅读:
    微信证书发布涉及到的问题
    C# Timer自带定时器
    微信accesstoken回调
    c#数组乱序,打乱数组
    JS 数组乱序
    百度地图LBS开放平台AK一直没有用
    C# 微信支付证书使用
    提交失败问题一:检测到有潜在危险
    apache如何发布地图服务
    Java后端进阶教程
  • 原文地址:https://www.cnblogs.com/hxsyl/p/3045767.html
Copyright © 2020-2023  润新知