bzoj1555 KD之死 贪心+堆优化
1555: KD之死
Time Limit: 10 Sec Memory Limit: 64 MB
Submit: 124 Solved: 54
[Submit][Status][Discuss]
Description
Combat)大战,这场战争有可能毁灭地球,所以才强行推荐F去火星家园,以躲避这次战争。
战争发生的这些年间,KD带领的正义清扫军顽强抵抗,与敌人势均力敌,才让摇摇欲坠的地球得到残存。可惜世事难料,KD终是被奸人所害,让敌人从后方攻进基地,应对不及,身受重伤,奄奄一息。(日薄西山,气息奄奄。人命危浅,朝不虑夕。。。。。)
SM(S**t Mother):哇嘎嘎嘎嘎嘎,天的光芒在照耀着我,你死定啦,地球就要毁灭啦。
但是SM没有发现,那个光芒是由F的拖拉机突破大气层时因摩擦产生火焰而发出的。在地球引力的加速下,拖拉机在X米高空处将F弹出后,碰巧飞速撞在了SM的身上。。。。。。SM惨叫一声后,就戏剧性的消逝了。虽然KD眼疾翅快,找了一个屏障,但毕竟是伤痕累累,受不住这么大的冲击,因此也圆寂了。。。。。。。。。
轰隆。。。KD和其他阵亡战士的躯体被装进了重重的GC里面,准备送往墓地。由于战争导致的科技极度退化,大家回到了板车时代。所以不得不将这些GC一个个竖着叠堆起来放在板车上,并由SD拖走。每个盒子都有一个重量W和它所能承受的最大重量T,即最多能有T单位重的盒子堆在它上面,否则会把它压烂,显然这个是不包括自身重量的。拖车虽然很顽强坚固,但是毕竟还是拖车,所以也还是有最大承受重量的。
因为和S混战了N久的SD也没多少力气了,所以他不想多次来回拖灵车,因此他只好每次拖运都装上尽量多的盒子。而且,还有更另SD抓狂的事:因为有些战士清扫功绩辉煌,所以必须在第一次拖运就将装他们的GC送往墓地。由于智商无限,SD想了半天都没想出来,无奈之下只好求助于过去世界的你,希望你告诉他第一次最多可以装多少个GC。
Input
接下来N行每行2个正整数W和T,表示这个GC自身重量是W个单位,最大承受量是T个单位。
接下来M行每行一个正整数P,表示第P个输入的GC第一次必须运到墓地。
Output
Sample Input
4 2
2 3
Sample Output
HINT
对于10%的数据,N<=10;
对于40%的数据,N<=100,W、T<=10000;
对于100%的数据,N<=600000,W、T<=2000000000;
注意事项:
数据很弱。
Source
这题推车可以看成是一个质量∞,有承受质量限制的物品,
对于a,b两个物品来说,at,aw,bt,bw
如果bt-aw>at-bw 的话则b放在下面会更优秀,因为下面的承受,上面需要承受的重量。
所以所以上面可以放的被下面限制,bt 被at-bw限制。
所以将b放在下面更优秀,
所以移项发现 bt+bw>at+aw是b放在下面更优秀,所以直接堆优化即可。
那么按照t+w排序后
维护大根堆贪心
顺序考虑每个盒子。
对于当前盒子,如果必须放,那么只要它放不了,就把已放的最重的盒子丢了
(如果没有盒子可以丢就说明无解)。这个盒子因为不能丢,所以不入堆。如果不必
须放,那么能放就放。否则如果这个盒子比已放的最重的盒子轻,且丢掉最重的盒子
后就能放了,那么把最重的盒子丢了,放这个盒子。如果这个盒子放了,就要把它放
入堆中。因为拖车不算盒子,所以答案是放了的总个数-1。
bzoj1555 KD之死 贪心+堆优化的更多相关文章
- NOIP2015 T4 推销员 贪心+堆优化
前几天在学堆,这个数据结构貌似挺简单的,但是我看了很久啊QAQ... 今天算是搞懂了吧...于是想到了这道题...(当初悄悄咪咪看题解记得一点) 点我看题 放洛谷的题... 题意的话,大概就是有n个房 ...
- BZOJ1555 KD之死
如果没有必选的限制条件,就是水题了... 只要按照w + t排序就可以了,然后搞个堆来维护 于是有了限制条件,还是水题... 到了必选的时候强制选上,不加入堆中即可. /*************** ...
- [2016湖南长沙培训Day4][前鬼后鬼的守护 chen] (动态开点线段树+中位数 or 动规 or 贪心+堆优化)
题目大意 给定一个长度为n的正整数序列,令修改一个数的代价为修改前后两个数的绝对值之差,求用最小代价将序列转换为不减序列. 其中,n满足小于500000,序列中的正整数小于10^9 题解(引自mzx神 ...
- 【BZOJ1029】[JSOI2007] 建筑抢修(堆优化贪心)
点此看题面 大致题意: 有N个受到严重损伤的建筑,对于每个建筑,修好它需要\(T1\)秒,且必须在\(T2\)秒之前修完(\(T1\)与\(T2\)不是固定值),问你最多能修好几个建筑. 题解 一看到 ...
- Codeforces Round #303 (Div. 2) E. Paths and Trees Dijkstra堆优化+贪心(!!!)
E. Paths and Trees time limit per test 3 seconds memory limit per test 256 megabytes input standard ...
- 学习笔记·堆优化$\mathscr{dijkstra}$
嘤嘤嘤今天被迫学了这个算法--其实对于学习图论来说我内心是拒绝的\(\mathscr{qnq}\) 由于发现关于这个\(\mathscr{SPFA}\)的时间复杂度\(O(kE)\)中的\(k \ap ...
- Dijkstra+优先队列 堆优化
关于堆优化 传统\(Dijkstra\),在选取中转站时,是遍历取当前最小距离节点,但是我们其实可以利用小根堆(STL的priority_queue)优化这个过程,从而大大降低复杂(\(O(V2+E) ...
- 【bzoj5197】[CERC2017]Gambling Guide 期望dp+堆优化Dijkstra
题目描述 给定一张n个点,m条双向边的无向图. 你要从1号点走到n号点.当你位于x点时,你需要花1元钱,等概率随机地买到与x相邻的一个点的票,只有通过票才能走到其它点. 每当完成一次交易时,你可以选择 ...
- 【bzoj4070】[Apio2015]雅加达的摩天楼 set+堆优化Dijkstra
题目描述 印尼首都雅加达市有 N 座摩天楼,它们排列成一条直线,我们从左到右依次将它们编号为 0 到 N−1.除了这 N 座摩天楼外,雅加达市没有其他摩天楼. 有 M 只叫做 “doge” 的神秘生物 ...
随机推荐
- 使用 IDEA和Maven 整合SSH框架
1.创建web工程 一路next 下去就行.完成后,IDEA会自动构建maven工程. 2.创建如下项目结构 需要将 java文件夹设置为SourcesRoot目录,否则无法创建package 设置操 ...
- 使用SQL 提示优化sql
use index 在查询语句中表名的后面,添加use index来提供希望mysql去参考的索引列表,就可以让mysql不再考虑其他可用的索引 explain select * from renta ...
- mybatis-XML配置文件
<?xml version="1.0" encoding="UTF-8" ?><!--plugins在配置文件中的位置必须要符合要求,否则会报 ...
- 安装python的注意事项
第一步: 下载安装文件 python-3.5.2.exe 第二步: 点击安装,下一步继续 第三步: 配置环境变量,记住第一次安装时的路径. 第四步: 测试,打开CMD,输入python.若未找到命令 ...
- spring boot 文件上传 文件过大 FileUploadBase$SizeLimitExceed
application.properties中加入 multipart.maxFileSizemultipart.maxRequestSize Spring Boot 1.3.x或者之前 multip ...
- 捕获arm非托管磁盘虚拟机,并进行还原
背景:非托管磁盘虚拟机"hlmcen69n1",附加了一块100GB的数据磁盘.由于arm非托管磁盘机器无法通过Portal界面直接"Capture",故只能通 ...
- python_鸡兔同笼问题
鸡兔同笼问题 -- 今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何? --鸡和兔在一个笼子里,从上面数,有35个头:从下面数,有94只脚.问笼中各有几只鸡和兔 如何逻辑整理? -- 鸡头和兔子 ...
- 使用SoapUI调用Vsphere Web Service
项目中经常需要调用Webservice进行验证测试,下面就介绍下如何使用测试工具SoapUI调用Vsphere vcenter的 Web Service VSphere的Webservice地址默认为 ...
- nodejs爬虫笔记(四)---利用nightmare解决加载更多问题
目标: 解决页面加载更多问题.笔记三中,我们只爬取到网页的部分信息,而点击加载更多后的页面内容是没有提取到的.开始我的想法是找到加载更多的数据接口(可参照:http://www.jianshu.com ...
- docker基础及安装
Docker介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...