贪心问题总结

1) 区间贪心

一、线段覆盖

n个开区间(ai,bi),选择尽量多个区间,使得这些区间两两不相交

右端点排序(<)兼顾左端点(>),再从左到右遇到不相交的就选

二、区间选点

n个闭区间[ai,bi],选择尽量少的点,使得每个区间至少有一个点

右端点排序(<)兼顾左端点(>),每次选择可选区间的最后一个点

三、区间覆盖

数轴上有n个闭区间[ai,bi],选择尽量少的区间覆盖一条指定的线段[s,t]

左端点排序(<)兼顾右端点(<),每次选择从当前起点能覆盖到的最长的区间

2) 其他贪心问题

1:活动安排问题 这种问题可以用结束时间排序,然后不断拿后一次的开始时间比较,循环,最大利用时间

2,:背包问题 背包问题不能单纯的考虑一方面,重量或是价格,应用一个词“性价比”来装包,从性价比最高的开始,一直装到不能再装为止,如果能分割,那么可以最大利用空间!!

3:最优装载问题 这个和背包问题差不多,甚至还简单,就不说了。。

4:多次服务最优次序问题:这种类型还是比较简单的,首先排好序,然后两个窗口依次取,谁完成就取,从小的开始 (如ZJOI2007 午餐).

5:桌子移动问题:其实这个可以把桌子数除以二,然后可以把数组值为零,依次输入数据,从谁那通过就加一,依次累加即可。。

posted @ 2018-06-22 18:56  Kevin_naticl  阅读(257)  评论(0编辑  收藏  举报