贪心算法依赖于所做出的选择无后效性,因此我们可以目光短浅,用局部最优解推出全局最优解。
贪心可能具有的优势:降低时间复杂度。
一、背包相关问题
1.最优装载问题
给出n个物体,第i个物体重量为wi。选择尽量多的物体,使得总重量不超过C。
2.部分背包问题
有n个物体,第i个物体的重量为wi,价值为vi。在总重量不超过C的情况下让总价值尽量高。
以vi/wi从大到小排序。
【深基12.例1】部分背包问题 - 洛谷https://www.luogu.com.cn/problem/P2240
3.乘船问题
有n个人,第i个人重量为wi。每艘船的最大载重量均为C,且最多只能乘两个人。用最少的船装载所有人。
先考虑最轻的人i,如果每个人都无法和他坐船,则只能每人乘一艘船。
否则,i应与能和他一起坐船的最重的j一起坐船。
[NOIP2007 普及组] 纪念品分组 - 洛谷https://www.luogu.com.cn/problem/P1094
二、区间问题
1.选择不相交区间
数轴上有n个开区间(ai,bi)。选择尽可能多个区间,使得这些区间两两没有公共点。
2.区间选点问题
数轴上有n个闭区间[ai,bi]。取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个)。
3.区间覆盖问题
数轴上有n个闭区间[ai,bi],选择尽量少的区间覆盖一条指定线段[s,t]。
洛谷P1803凌乱的yyy凌乱的yyy / 线段覆盖 - 洛谷https://www.luogu.com.cn/problem/P1803
三、Huffman编码问题
1.分卷子
有A,B,C,D四种等级的卷子,每次分卷子,只能将一摞卷子分为两堆,不会有两张相同等级的卷子同时出现在两边。分好的卷子还能继续在分,直到分为四堆为止,给出各等级卷子的数量
[NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G - 洛谷https://www.luogu.com.cn/problem/P1090
四、贪心+公式
1.排队接水 - 洛谷贪心+快排
2.[NOIP2012 提高组] 国王游戏 - 洛谷贪心+高精度
3.122. 买卖股票的最佳时机 II - 力扣(LeetCode) (leetcode-cn.com)
五、贪心+模拟
1.摆动序列
376. 摆动序列 - 力扣(LeetCode) (leetcode-cn.com)
2.最大子序和
53. 最大子序和 - 力扣(LeetCode) (leetcode-cn.com)
3.55. 跳跃游戏 - 力扣(LeetCode) (leetcode-cn.com)
4.1005. K 次取反后最大化的数组和 - 力扣(LeetCode) (leetcode-cn.com)
****5.135. 分发糖果 - 力扣(LeetCode) (leetcode-cn.com)
6.
455. 分发饼干 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/assign-cookies/
六、贪心的其他应用
字典序问题(偷懒不想讲)
最小生成树、单源最短路径的Dijkstra算法、集合覆盖问题的Chvátal算法。
我不会,嫑问我。