您的位置:首页 > Web前端 > JavaScript

【BZOJ1029】[JSOI2007][贪心][堆]建筑抢修

2016-10-18 09:01 302 查看
Description

  小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的

入侵者。但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全

毁坏。现在的情况是:T部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需

要一定的时间。同时,修理工人修理完一个建筑才能修理下一个建筑,不能同时修理多个建筑。如果某个建筑在一

段时间之内没有完全修理完毕,这个建筑就报废了。你的任务是帮小刚合理的制订一个修理顺序,以抢修尽可能多

的建筑。

Input

  第一行是一个整数N接下来N行每行两个整数T1,T2描述一个建筑:修理这个建筑需要T1秒,如果在T2秒之内还

没有修理完成,这个建筑就报废了。

Output

  输出一个整数S,表示最多可以抢修S个建筑.N < 150,000; T1 < T2 < maxlongint

Sample Input

4

100 200

200 1300

1000 1250

2000 3200

Sample Output

3

看到这种题目应该很容易想到贪心吧。最基本的贪心原则是对于一个任务i,尽量等到sum快到lim[i]时再处理i,所以可以先以lim从小到大排序。但这样依次处理并不一定会得到最优解,如果一个lim[j]>lim[i]且time[j]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: