首页 > 代码库 > 总结#2----一类贪心问题

总结#2----一类贪心问题

有n项任务,每项任务有一个报酬(可以为定值),还有一个最迟完成的时间,你完成一项任务需要特定的时间(可以为定值),求你最多可以获得多少报酬。

这类题目一般是贪心,而且一般是从后往前贪,不过有时需要做一些变换。

例如

1.wikioi1052地鼠游戏=bzoj1572工作安排

   时间为定值1,报酬不同  

   每个时间点选取当前可做的最大的报酬的工作,从后往前,要注意当前队列为空时直接跳转到下一个有工作时间点

2.bzoj1029JSOI2007建筑抢修 

   报酬为定值,时间不同

   排序了之后,从前往后能做则做,否则如果将当前耗时最大的去掉而加上此工作可以使耗时更短则做

3.vijos1604作业调度方案

   没有报酬,不按时完成有惩罚,时间相同,求最小惩罚

   贪心选择当前惩罚最大的先完成,而且如果它的最迟时间是x,则从x-1到1扫有没有空余的位置,遇到则break

   如果不能完成则将其放在尽量靠后的地方从n往x+1扫遇到则break

待补充