Hdu 3177 (贪心)
题目大意:
山洞的体积为\(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 (贪心)的更多相关文章
- hdu 3177贪心
#include<stdio.h>/*只能按这种形式排序单纯一种形式是不对的,按ai排序 20 2 1 1 10 20 按bi排序 20 2 5 17 1 16 都是不对的 二a.u+b. ...
- HDU 3177 Crixalis's Equipment (贪心,差值)
题意:判断 n 件物品是否可以搬进洞里,每件物品有实际体积A和移动时的额外体积 B . 析:第一反应就是贪心,一想是不是按B从大到小,然后一想,不对,比如体积是20,第一个 是A=11, B=19.第 ...
- HDU 3177 Crixalis's Equipment(贪婪)
主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=3177 Problem Description Crixalis - Sand King used t ...
- 【hdu 3177 Crixalis's Equipment】 题解
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3177 \(describe\): 有一个山洞,山洞的容积最大为\(v\).现在你有\(n\)个物品,这 ...
- Hdu 5289-Assignment 贪心,ST表
题目: http://acm.hdu.edu.cn/showproblem.php?pid=5289 Assignment Time Limit: 4000/2000 MS (Java/Others) ...
- Hdu 3177 Crixalis's Equipment
Crixalis's Equipment Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- hdu 4803 贪心/思维题
http://acm.hdu.edu.cn/showproblem.php?pid=4803 话说C++还卡精度么? G++ AC C++ WA 我自己的贪心策略错了 -- 就是尽量下键,然后上 ...
- hdu 1735(贪心) 统计字数
戳我穿越:http://acm.hdu.edu.cn/showproblem.php?pid=1735 对于贪心,二分,枚举等基础一定要掌握的很牢,要一步一个脚印走踏实 这是道贪心的题目,要有贪心的意 ...
- hdu 4974 贪心
http://acm.hdu.edu.cn/showproblem.php?pid=4974 n个人进行选秀,有一个人做裁判,每次有两人进行对决,裁判可以选择为两人打分,可以同时加上1分,或者单独为一 ...
随机推荐
- sed 匹配\n换行符
假设 str="a,b,c,d" echo ${str} | sed "s/,/\n/g" 输出: a b c d echo ${str} | sed &quo ...
- Git - .gitignore怎么忽略已经被版本控制的文件
问题 如果某个文件已经存在于远程仓库了,也就是说某个文件已经被版本控制了,如果将该文件添加到.gitignore中,是无法生效的.因为.gitignore是用来控制尚未被纳入版本控制的文件,如果文件已 ...
- 解决“每次启动Access2010时都要求配置VS2008”的办法
我每次启动Access2010时都会要求配置VS2008,这大概是VS2008与office(Access2010)有冲突引起的.这里提供一种解决办法. 依次选择Access2010的文件-选项中-加 ...
- 3.KPCR
KPCR: CPU控制区(Processor Control Region) 当线程进入0环时, FS:[0]指向KPCR(3环时FS[0]-> TEB)每个CPU都有一个KPCR结构体(一个核 ...
- VLAN-3-VLAN Trunk:ISL和802.1Q
(1)ISL和802.1Q概念 通过使用VLAN Trunk链路,设备可以通过一条链路发送去往多个vlan的流量.为了知道数据帧属于哪个vlan,发送方会添加原始以太网数据帧的头部,这 ...
- compile and link
1. C 中 头文件的作用? 2. difference between *.a and *.so? 3. object file and executable file 4. search path ...
- qq登录,新浪微博登录接口申请过程中遇到的问题
接口申请下来了,开发很容易的,参数传到就可以了.以前就做过这方面的开发,但是申请还是第一次,网上有关这方面的东东不是很多,所以记录一下申请过程. 1,qq登录接口申请 申请地址是:http://con ...
- Asp.net开发必备51种代码
1.//弹出对话框.点击转向指定页面 Response.Write("<script>window.alert('该会员没有提交申请,请重新提交!')</script> ...
- 重新安装Magento2 Module
如何重新安装Magento2的Module? 分类 2 类: Module是通过 composer 安装的:在命令行输入:php bin/magento module:uninstall Module ...
- CF1110C Meaningless Operations
思路: 令x为满足2x <= a的最大的x.如果a的二进制表示中包含0,则将b构造为(2x+1 - 1) ^ a即可:否则gcd(a ^ b, a & b) = gcd(2x+1 - 1 ...