zoukankan      html  css  js  c++  java
  • NYOJ289 苹果 典型背包

    苹果

    时间限制: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
    View Code
    #include<stdio.h>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    struct node
    {
        int c;
        int w;
    }a[1001];
    
    int max(int a,int b)
    {
        return a>b?a:b;
    }
    int main()
    {
        int i,n,v,j;
        int f[1001];
        while(scanf("%d%d",&n,&v)&&(n||v))
        {
             for(i=0;i<n;++i)
                 scanf("%d%d",&a[i].c,&a[i].w);
             memset(f,0,sizeof(f));
             for(i=0;i<n;++i)
             {
                 for(j=v;j>=a[i].c;j--)
                     f[j]=max(f[j],f[j-a[i].c]+a[i].w);
             }
             printf("%d\n",f[v]);
        }
        return 0;
    }
    
             

    刚开始也是想着贪心,让价值除以大小,作为权值去比较,但是后来发现,不对,还是用了 背包

  • 相关阅读:
    378. Kth Smallest Element in a Sorted Matrix
    295. Find Median from Data Stream
    857. Minimum Cost to Hire K Workers
    373. Find K Pairs with Smallest Sums
    767. Reorganize String
    无序列表
    有序列表
    缩写
    设计者详细信息
    强调
  • 原文地址:https://www.cnblogs.com/zibuyu/p/2943515.html
Copyright © 2011-2022 走看看