第 31 讲:动态规划 I——原理与经典问题

DP 的两个前提(最优子结构与重叠子问题)、记忆化与自底向上的取舍、设计 DP 的五步法、LCS/编辑距离/0-1 背包/LIS 的完整推导与空间优化,以及伪多项式时间到底是什么意思。

2026-08-28 · ifcalm

第 32 讲:动态规划 II——进阶模型与优化

区间 DP(矩阵链乘、最优 BST)、树形 DP、状态压缩 DP(TSP 与集合覆盖)、数位 DP,以及三类经典优化:单调队列优化、前缀和/差分优化、四边形不等式与决策单调性。

2026-08-28 · ifcalm

第 33 讲:字符串算法——KMP、Rabin-Karp、Trie 与后缀结构

朴素匹配为什么退化、KMP 失配函数的含义与线性时间的摊还论证、Rabin-Karp 的滚动哈希与多模式匹配、Trie 与 Aho-Corasick 自动机、后缀数组与 Z 函数,以及各方案的选型。

2026-08-28 · ifcalm

第 34 讲:NP 完全性与应对 NP 难问题

P、NP、NP-完全、NP-难的精确定义、多项式归约的方向为什么容易搞反、Cook-Levin 定理与经典 NPC 问题的归约链、如何证明一个问题是 NPC,以及遇到 NP-难问题时的五条实用出路。

2026-08-28 · ifcalm

Problem Set 1:分析工具与线性结构

覆盖第 1–8 讲的 20 道题:循环不变式证明、渐近记号辨析、递归式求解、摊还分析的三种方法、动态数组与链表选型、散列表的期望代价推导与全域散列。附完整解答。

2026-08-28 · ifcalm

Problem Set 2:排序与选择

覆盖第 9–13 讲的 18 道题:稳定性与逆序对、堆的建堆下界推导、随机化快排的期望分析、比较排序下界的决策树证明、线性排序的额外假设、BFPRT 的组大小分析。附完整解答。

2026-08-28 · ifcalm

Problem Set 3:二分与搜索树

覆盖第 14–20 讲的 17 道题:二分查找的三处边界与二分答案、BST 的删除与随机高度、旋转与 AVL 的斐波那契界、红黑树的黑高定理与 2-3-4 对应、B 树的外存分析、跳表与 Treap 的期望证明、增强结构的可维护性判据。附完整解答。

2026-08-28 · ifcalm

Problem Set 4:图算法

覆盖第 21–27 讲的 18 道题:图表示的取舍、BFS/DFS 的正确性、括号定理与 SCC、并查集的复杂度、MST 的割性质、Dijkstra 为什么怕负权、Bellman-Ford 的归纳证明、最大流最小割与二分匹配建模。附完整解答。

2026-08-28 · ifcalm

Problem Set 5:算法设计范式与复杂性

覆盖第 28–34 讲的 18 道题:分治的代数技巧与最近点对、回溯的去重条件与剪枝、贪心的交换论证与反例构造、DP 的状态设计与背包倒序之谜、区间/树形/状压 DP、KMP 的摊还证明、NP 归约与应对策略。附完整解答。

2026-08-28 · ifcalm

术语表:英中对照与速查

按主题组织的数据结构与算法术语表,中英对照,每条附一句话精确定义与所在讲次。用于查漏、反查和考前速览。

2026-08-28 · ifcalm