HDU 3177 Crixalis's Equipment(贪婪)「建议收藏」

HDU 3177 Crixalis's Equipment(贪婪)

大家好,又见面了,我是全栈君。

主题链接:http://acm.hdu.edu.cn/showproblem.php?

pid=3177

Problem Description
HDU 3177 Crixalis's Equipment(贪婪)「建议收藏」Crixalis – Sand King used to be a giant scorpion(蝎子) in the deserts of Kalimdor. Though he’s a guardian of Lich King now, he keeps the living habit of a scorpion like living underground and digging holes.

Someday Crixalis decides to move to another nice place and build a new house for himself (Actually it’s just a new hole). As he collected a lot of equipment, he needs to dig a hole beside his new house to store them. This hole has a volume of V units, and Crixalis has N equipment, each of them needs Ai units of space. When dragging his equipment into the hole, Crixalis finds that he needs more space to ensure everything is placed well. Actually, the ith equipment needs Bi units of space during the moving. More precisely Crixalis can not move equipment into the hole unless there are Bi units of space left. After it moved in, the volume of the hole will decrease by Ai. Crixalis wonders if he can move all his equipment into the new hole and he turns to you for help.

 
Input
The first line contains an integer T, indicating the number of test cases. Then follows T cases, each one contains N + 1 lines. The first line contains 2 integers: V, volume of a hole and N, number of equipment respectively. The next N lines contain N pairs of integers: Ai and Bi.

0<T<= 10, 0<V<10000, 0<N<1000, 0 <Ai< V, Ai <= Bi < 1000.

 
Output
For each case output “Yes” if Crixalis can move all his equipment into the new hole or else output “No”.
 
Sample Input
      
220 310 203 101 710 21 102 11

 
Sample Output
   
   
Yes No

 
Source

题意:

向一个容量为V的洞中放如入物品,每件物品有一个停放体积和一个可移动体积。问是否能放下全部的物品?

思路:—— 贪心

                                   停放体积         移动体积

                  第一件物品          a1             b1

  

                  第二件物品          a2             b2

如果这两件物品的移动体积都不大于洞的体积V

那么将单独比較两个物品的时候会发现:  a1+b2为先放第一件物品,后放第二件物品的最大瞬时体积

                                                        a2+b1为先放第二件物品。后放第一件物品的最大瞬时体积

那么我们就应该选择a1+b2和a2+b1中比較小的先放。

那么从2件物品。扩展到n件物品 如果n件物品的移动体积都不大于洞的体积V,

将N件物品依照a1+b2 < a2+b1进行排序,(事实上就是依照差值的大小)然后依次放入洞中。

PS: 

假设仅仅是单纯的依照Bi从大到小排序的话为WA;

看看这个案例就明确了。

21 2

8 18

1 20

Yes


代码例如以下:

#include <cstdio>
#include <algorithm>
#include <iostream>
#include <cstring>
using namespace std;
struct num
{
    int a, b;
} p[1017];
bool cmp(num A, num B)
{
    return A.b-A.a > B.b-B.a;
}
int main()
{
    int t;
    int v, n;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d %d",&v,&n);
        for(int i = 0; i < n; i++)
        {
            scanf("%d %d",&p[i].a,&p[i].b);
        }
        sort(p,p+n,cmp);
        int i;
        for(i = 0; i < n; i++)
        {
            if(v >= p[i].b)
            {
                v-=p[i].a;
            }
            else
                break;
        }
        if(i == n)
            printf("Yes\n");
        else
            printf("No\n");
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116646.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mac版ps快捷键大全示意图_苹果电脑ps选中图片快捷键是什么

    mac版ps快捷键大全示意图_苹果电脑ps选中图片快捷键是什么psmac快捷键1、打开文件-Command+O2、创建文档-Command+N3、放大和缩小-Command+加号或减号4、存储为Web格式-Command+Option+Shift+S5、转换层-转化的活性层发生时按Command+T6、自定义快捷键-Option+Command+Shift+K7、首选项-Command+K8、色阶–Command+L9、曲线-Command+M10、色相/饱和度–C

    2022年9月29日
    5
  • Java结合OpenCV读取图片并遍历像素值[通俗易懂]

    Java结合OpenCV读取图片并遍历像素值[通俗易懂]1项目结构图1图像读取及遍历项目结构2图像读取及遍历codepackagecom.opencv;importjava.awt.Dimension;importjava.awt.image.BufferedImage;importjava.util.ArrayList;importjava.util.List;importjava.util.Vector;…

    2022年6月2日
    33
  • java数组删除元素_java中删除 数组中的指定元素方法[通俗易懂]

    java数组删除元素_java中删除 数组中的指定元素方法[通俗易懂]java中删除数组中的指定元素要如何来实现呢,如果各位对于这个算法不是很清楚可以和小编一起来看一篇关于java中删除数组中的指定元素的例子。java的api中,并没有提供删除数组中元素的方法。虽然数组是一个对象,不过并没有提供add()、remove()或查找元素的方法。这就是为什么类似ArrayList和HashSet受欢迎的原因。不过,我们要感谢ApacheCommonsUtils,我…

    2022年8月11日
    12
  • 线上FGC调优案例三则

    线上FGC调优案例三则前言闲鱼服务端应用广泛使用Java技术栈,基于JVM提供的托管式堆内存管理,开发者无需过多关心对象创建/回收时的内存分配/释放动作,垃圾回收器(GarbageCollector)会在…

    2022年6月19日
    34
  • FVWM_fw一流是什么意思

    FVWM_fw一流是什么意思国庆期间,把自己的FVWM好好整理了一下,现在我的桌面看上去是这个样子滴(点击可放大):我的.fvwm2rc可以下载。我的部分FVWM笔记:***   如何使用托盘      $sudoapt-getinstalltrayer      $trayer–widthtypepixel–width128–height32–edgebottom&***  

    2022年10月4日
    2
  • Python基本数据类型有哪些

    Python基本数据类型有哪些1.基本数据类型1.数字类型:整型(int),浮点型(float),复数类型(complex)2.字符串类型:str3.逻辑类型:boolTrueFalse4.列表类型:list[]有序可修改5.元组类型:tuple()有序不可修改6.集合类型:set{}无序不重复7.字典类型:dict{key:value}无序2.整形中的四种进制…

    2022年5月24日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号