[学习笔记] 贪心

写在前面

参考

《算法竞赛进阶指南》贪心部分(在[“基础算法”](?)那一部分)。(有些是直接抄的这本书上的。)

XK 给我们讲课的[课件](?)。

2024.10.23 模拟赛 T2 及其题解。

(目前是这些)

之后应该还有今年暑假集训时的贪心 PPT。

关于本文中“贪心”的含义

本文所言的贪心是“广义”的,即不一定是只考虑局部最优得到全局最优,而是 给出普遍性的最优策略 都算“贪心”。(相比之下,最优化 DP 相当于对特殊情况(比如对于某一个每个位置的值都知道的序列)求出最优策略,而本文所言“贪心”是指直接给出普遍的最优策略,这个策略对满足某种条件的每个情况都是[最优](?)的)

贪心题的特征

  • 像是要 DP,但用 DP 时空复杂度太高,无法接受。
  • (某类题)选择每个东西的 代价 / 价值 是相同的。

思考贪心 & 证明贪心 的方法

1. 微扰法

任意小变化都会导致全局不优,因此某种方案不变化是全局最优的方案。

经典:邻项交换排序贪心。

2. [决策包容性](?)

[如果某种决策能到达所有的状态,就可以用这种决策。相当于这种决策到达的状态包含了最优决策到达的状态。](?)

例一:见《算法竞赛进阶指南》。

例二:(2024.10.23 模拟赛 T2)每次选最短的能选的,包含了选较长的能选的的情况。于是就每次都选最短的能选的。

3. 扩展法(记不到名字了)

[即证明从局部最优的情况扩展到新的情况仍是最优的。类似归纳法。](?)

4. 归纳法

5. 反证法

贪心和其他算法的结合

贪心缩小范围:例如当 DP 的状态过多(范围太大)时,可以考虑贪心地证明只需要一个较小的范围。贪心应该也可以以这种方式和搜索结合。(实际上,贪心、DP、搜索 可以结合,见:我的另一篇博客

以贪心求得策略之后用数据结构维护。(2024.10.23 模拟赛 T2)

贪心和 DP 结合。(XK 的 贪心 课件里,我忘了是什么了)咕咕咕。

例题

咕咕咕。

2024.10.24

posted @ 2024-10-24 21:55  huangkxQwQ  阅读(2)  评论(0编辑  收藏  举报