贪心算法总结

题目总结贪心算法

1.来吃
HDOJ.1257 最少拦截系统
我感觉这个例子非常好的解释贪心。
如果一个拦截系统能拦截当前的导弹,那么就让他拦截,如果可能的话,导弹高度一直降低,就让他一直拦截,直到他不能拦截新的导弹,再建立新的导弹系统。可以抽象的理解为有一个人一直吃,直到他吃不下了为止。

2.高性价比

1、HDU 1009讲解
想要保住更多的粮食,那么久要选择性价比高的房间,即花最少的猫粮就能获取更大的收益。你看多贪。根据性价比排序优先选择性价比高的即可。
与这个例子差不多的
2、HDOJ2187讲解
只不过是换了个情景,这个是买大米而已。

3.时间区间

1、HDU2037讲解
这道题有意思,要求能看的完整节目时间多。那么节目结束时间越早,能看的东西不就是越多了吗?所以只需要按照结束时间升序排列就好(结束时间早意味着开始时间也早)。然后依次和后面的比较即可。
2、51Nod 1133讲解
只需要记住,这类的时间问题,这种时间分配的题目只要按照结束的先后排序,然后扫一遍就可以了。

4.多重标准的来吃
HDOJ.1051 Wooden Sticks
加工小木条。如果加工过木条的l和w均比下一个大,那么就不用准备时间了。和来吃的模型一模一样嘛,只不过是双重标准而已。思路也很简单,重复找那个能吃的人,让他把能吃的都吃了,然后再找,看看最后有几个这样能吃的人就好了。

5.重叠问题(包括重叠区间)
HDOJ.1800 Flying to the Mars
小女巫骑扫帚。等级高的可以教等级低的。教过后能一起骑一个扫帚(哈啤啊)。求最少的扫帚数是多少。当时我想挺像拦截系统那个的,但是这题能排序啊。于是我就排序了,浪交一发WA。后来仔细一想还是有点区别的。排好序之后统计一下各个等级的人数,啪,就来了。扫帚数就是最多的人数啊(详细思路见题解)。 之前还做过一个重叠区间的问题:
HDOJ.1050 Moving Tables
这题和1800有异曲同工之妙,大家琢磨琢磨。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值