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分,或者单独为一 ...
随机推荐
- 初学Java web(转)
转自 http://www.oschina.net/question/12_52027 OSCHINA 软件库有一个分类——Web框架,该分类中包含多种编程语言的将近500个项目. Web框架是开发者 ...
- mysql驱动包下载
- log4j.xml中Filter的用法
前言 log4j中常用的Filter分为四种:DenyAllFilter.LevelMatchFilter.LevelRangeFilter.StringMatchFilter. 当appender匹 ...
- C# 可空类型(Nullable)
C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值. 例如,Nullable< Int32 >,读作& ...
- Vue初始化
Vue上面的函数怎么来的 vue的打包路径 在web中使用的vue打包路径: npm run build 打包生成vue.js 下面是依次引入: src/platforms/web/entry-run ...
- mac下启动lnmp的方式
mac air 系列由于各种原因使得我不得不重启,重启后发现lnmp全部都关闭了, nginx: sudo nginx php-fpm: sudo php-fpm mysql: cd /usr/l ...
- Java EE学习笔记(三)
Spring AOP 1.Spring AOP简介 1).AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程).它是面向对象编程(OOP)的一种补充 ...
- axios 在vue中使用
下载组件: npm install axios --save npm install qs --save //处理对象防止产生跨域问题 引入: 新建axios文件夹,文件下新建index.js文件 i ...
- HashMap源码及原理
HashMap 简介 底层数据结构分析 JDK1.8之前 JDK1.8之后 HashMap源码分析 构造方法 put方法 get方法 resize方法 HashMap常用方法测试 感谢 changfu ...
- office 导出问题
就用程序池右击项目高级设置 应用程序池的项目中的标识改为 LocalSystem 启用32位应用程序设为true或false