题目大意:

山洞的体积为\(v\)

第\(i\)个物品放在山洞里会占据\(a_i\)的空间,在搬运过程中至少需要\(b_i\)的空间

问能不能把所有物品都放下

贪心题.比较难看出贪心,但是从无顺序要求中可以看出这是个贪心.

仍然考虑两个人.(贪心的基本操作)

如果不知道为什么考虑两个人可以参考我的另外两篇有关贪心交换的好题:国王游戏

皇后游戏

设第一个人的占据空间为\(a_1\),需要空间为\(b_1\)

然后就可以乱搞分析.

仍然的.

所用的空间.

max(max(b_1,a_1+b_2),max(b_2,a_2+b_1))是不能排在第一位的

首先\(b_1,b_2\)是不可能作为答案的.

\(a_1+b_2 a_2+b_1\)

两边同时减去\(b_1+b_2\)

成了

\(a_1-b_1,a_2-b1\)

如果\(a_1-b_1 > a_2-b1\)就让第一个人排在第一个位置.

反之同理.

#include <iostream>
#include <cstdio>
#include <algorithm>
const int maxN = 1000 + 7; struct Node{
int a,b;
}Q[maxN];
int T,n,V;
bool operator < (const Node &a,const Node &p) {
return a.a - a.b < p.a - p.b;
} bool cmp(int sum,int id) {
if(sum + Q[id].b > V) return false;
return true;
} int main() {
scanf("%d",&T);
while(T --) {
scanf("%d%d",&V,&n);
for(int i = 1;i <= n;++ i)
scanf("%d%d",&Q[i].a,&Q[i].b);
std::sort(Q + 1,Q + n + 1);
int sum = 0;
bool flag = true;
for(int i = 1;i <= n;++ i) {
if(cmp(sum,i)) sum += Q[i].a;
else {
flag = false;
break;
}
}
flag ? puts("Yes") : puts("No");
}
return 0;
}

Hdu 3177 (贪心)的更多相关文章

  1. hdu 3177贪心

    #include<stdio.h>/*只能按这种形式排序单纯一种形式是不对的,按ai排序 20 2 1 1 10 20 按bi排序 20 2 5 17 1 16 都是不对的 二a.u+b. ...

  2. HDU 3177 Crixalis's Equipment (贪心,差值)

    题意:判断 n 件物品是否可以搬进洞里,每件物品有实际体积A和移动时的额外体积 B . 析:第一反应就是贪心,一想是不是按B从大到小,然后一想,不对,比如体积是20,第一个 是A=11, B=19.第 ...

  3. HDU 3177 Crixalis&#39;s Equipment(贪婪)

    主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=3177 Problem Description Crixalis - Sand King used t ...

  4. 【hdu 3177 Crixalis's Equipment】 题解

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3177 \(describe\): 有一个山洞,山洞的容积最大为\(v\).现在你有\(n\)个物品,这 ...

  5. Hdu 5289-Assignment 贪心,ST表

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=5289 Assignment Time Limit: 4000/2000 MS (Java/Others) ...

  6. Hdu 3177 Crixalis's Equipment

    Crixalis's Equipment Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  7. hdu 4803 贪心/思维题

    http://acm.hdu.edu.cn/showproblem.php?pid=4803 话说C++还卡精度么?  G++  AC  C++ WA 我自己的贪心策略错了 -- 就是尽量下键,然后上 ...

  8. hdu 1735(贪心) 统计字数

    戳我穿越:http://acm.hdu.edu.cn/showproblem.php?pid=1735 对于贪心,二分,枚举等基础一定要掌握的很牢,要一步一个脚印走踏实 这是道贪心的题目,要有贪心的意 ...

  9. hdu 4974 贪心

    http://acm.hdu.edu.cn/showproblem.php?pid=4974 n个人进行选秀,有一个人做裁判,每次有两人进行对决,裁判可以选择为两人打分,可以同时加上1分,或者单独为一 ...

随机推荐

  1. 【NOI省选模拟】小奇的花园

    「题目背景」 小奇在家中的花园漫步时,总是会思考一些奇怪的问题. 「问题描述」 小奇的花园有n个温室,标号为1到n,温室以及以及温室间的双向道路形成一棵树. 每个温室都种植着一种花,随着季节的变换,温 ...

  2. CF1110F Nearest Leaf

    传送门 这是我第二次看见这个题目了,第一次看见是另一场比赛的A题,想了一个小时不会写就弃了 从来没想过这个题能这么玩 线段树上记录根到叶子节点的距离 初始线段树上先记下根节点1到各叶子节点的距离 先离 ...

  3. [題解](單調隊列dp)luogu_P1725琪露諾

    比較簡單的單調隊列,但是有一些要注意的 維護單調隊列的時候裡面存的是入隊時間,而不是i,因為前面有l個沒有入隊(不可能走進),所以把i减一个l以达到延迟入队的效果 #include<bits/s ...

  4. HDU 1875(最小生成树)

    #include <iostream> #include <algorithm> #include <cstdio> #include <cmath> ...

  5. CF #541div2 D

    题目本质:形成一个拓扑图,不应带自环. 解决方法: 1.先把等于号的部分用dsu缩点: 2.大于和小于号建立拓扑关系: 3.n*m的矩阵,只要用标号n+j代表m集合的第j个就从二维降到一维了: 4.d ...

  6. Maximum Control (medium) Codeforces - 958B2

    https://codeforces.com/contest/958/problem/B2 题解:https://www.cnblogs.com/Cool-Angel/p/8862649.html u ...

  7. c# 定时器 自动执行

    //下面讲一个打开窗体定时执行按钮的东西 private void Form1_Load(object sender, EventArgs e) { System.Timers.Timer pTime ...

  8. IE如何实现text-shadow文字阴影效果呢?

    让我们头痛的是IE是不支持text-shadow效果,但为了在兼容这一问题,我们只好使用滤镜filter:shadow来处理(本人不提倡使用滤镜).filter:shadow滤镜作用与dropshad ...

  9. if __FILE__ == $0 end

    if __FILE__ == $0 end __FILE__是一个“具有魔力”的变量,它代表了当前文件名.$0是用于启动程序的文件名.那么代码“if __FILE__ == $0”便意味着检查此文件是 ...

  10. 将Object转换成Dictionary方法

    如果Object是Dictionary类型,直接返回 如果Object是NameValueCollection类型,则添加到Dictionary里 如果Object是Hashtable类型,添加到Di ...