95 个考点按讲次编排,含 S/A/B 分级与老师原话证据
考点总表
课程:NUAA-ADS2026(Advanced Data Structures and Algorithm Analysis)
生成依据:4 份 PPT 文本(ads 八讲)+ 4 份纪要 + 4 份逐字稿(304 KB)
证据标注约定:[PPT:文件名:行号] = PPT 文本行号;[纪要:n] = n-conclusion.md;[稿:文件:行号] = 逐字稿行号
重要度定义
| 级别 |
含义 |
判据 |
| S |
必考 / 课堂明确强调 / 正答率极低处 |
逐字稿有"经常会考""考试"等原话,或正答率<30% |
| A |
高概率考(PPT 有 Definition/Theorem/Lemma 或完整 Example) |
PPT 有正式定义/定理/证明 |
| B |
理解性考点(背景、动机、工程取舍) |
仅出现在 PPT 正文或项目要求中 |
一、按讲次的考点清单
第 1 讲(上)— AVL Trees, Splay Trees, and Amortized Analysis
证据:PPT_文本/ADS/第一讲(上)AVL Trees, Splay Trees, and Amortized Analysis.txt(640 行)
| 编号 |
考点 |
级 |
证据 |
预测题型 |
| 1.1.1 |
BST 退化问题:Tp=O(height),height 可退化到 O(N) |
B |
[PPT:1上:20] 正文;[稿:1-逐字稿:122] 好学生陷阱 |
选择/简答 |
| 1.1.2 |
AVL 定义与平衡因子 BF=hL−hR∈{−1,0,1} |
S |
[PPT:1上:49,57] 【Definition】×2 |
判断/选择 |
| 1.1.3 |
AVL 高度上界 h ≤ 1.44 log₂N,最少节点 N(h)=N(h−1)+N(h−2)+1 |
A |
[PPT:1上:49-60] 斐波那契递推 |
计算/证明 |
| 1.1.4 |
四种旋转 LL/RR/LR/RL 的判定与执行顺序 |
S |
[PPT:1上:66] 【Example】Mar/May/Nov RR |
画树大题 必考 |
| 1.1.5 |
插入/删除后的旋转修复;删除可能需多次旋转 |
A |
[PPT:1上] 正文 |
画树 |
| 1.1.6 |
Splay Tree:访问即旋转至根 |
A |
[PPT:1上:581] |
画树/简答 |
| 1.1.7 |
zig / zig-zig / zig-zag 三种情形 |
S |
[PPT:1上:581] |
画树 必考 |
| 1.1.8 |
为何必须双旋:单旋退化为 O(N) |
S |
[纪要:1-conclusion] 双旋优化;[稿:2-逐字稿:119] |
简答/证明 |
| 1.1.9 |
摊还分析三法:聚合分析 / 记账法 / 势能法 |
S |
[PPT:1上:514,560] MultiPop 例 |
证明题 |
| 1.1.10 |
势能法 Φ=Σlog(size),splay 摊还 O(log N) |
A |
[PPT:1上:581] |
证明 |
| 1.1.11 |
MultiPop 栈:单次 O(N) 但摊还 O(1) |
A |
[PPT:1上:514,560] 两次【Example】 |
计算/证明 |
| 1.1.12 |
摊还复杂度 ≠ 每次最坏复杂度 |
S |
[纪要:1-conclusion] 明示区分 |
判断(高频陷阱) |
第 1 讲(下)— Red-Black Trees and B+ Trees
证据:PPT_文本/ADS/第一讲(下)Red-Black Trees and B+ Trees.txt(299 行)
| 编号 |
考点 |
级 |
证据 |
预测题型 |
| 1.2.1 |
红黑树五条性质(根黑/NIL黑/红子必黑/黑高相等/节点非红即黑) |
S |
[PPT:1下:15] 【Definition】 |
判断/选择 必考 |
| 1.2.2 |
black-height bh(x) 定义与计算 |
A |
[PPT:1下:31] 【Definition】 |
填空/计算 |
| 1.2.3 |
引理:size(x) ≥ 2^bh(x)−1,归纳证明 |
A |
[PPT:1下:36] 【Lemma】 |
证明 |
| 1.2.4 |
树高 h ≤ 2 log₂(N+1) 的完整证明链 |
S |
[PPT:1下:36] 证明分两步 |
证明题 高频 |
| 1.2.5 |
插入:默认染红 + Case 1/2/3(叔红变色 / 叔黑旋转) |
S |
[PPT:1下:50+] Case 1/2 |
画树 必考 |
| 1.2.6 |
插入口诀 "swap colors and rotate" |
S |
[稿:1-逐字稿:437] 老师原话"记住一个口诀" |
简答 |
| 1.2.7 |
删除修复:最多 3 次旋转 |
S |
[PPT:1下] 对比表 O(logN)/≤3 |
选择/简答 |
| 1.2.8 |
红黑树 vs AVL:旋转次数、parent 指针开销、随机数据实测更快 |
S |
[稿:1-逐字稿:470] 老师大段论述 |
简答 高频 |
| 1.2.9 |
大型系统不做删除 → 红黑树的绝对优势消失 |
B |
[稿:1-逐字稿:470] |
简答 |
| 1.2.10 |
B+ 树 M 阶结构:内部只存索引、数据全在叶子、叶子链表 |
S |
[PPT:1下] For a general B+ tree of order M |
判断/选择 |
| 1.2.11 |
键值数上下界 ⌈M/2⌉−1 ~ M−1(与 M 的换算) |
S |
[PPT:1下] |
计算 高频易错 |
| 1.2.12 |
插入分裂:溢出→分裂→可能上传致树高 +1 |
A |
[PPT:1下] |
画树 |
| 1.2.13 |
B+ 树的磁盘 I/O 优势与分裂开销权衡 |
B |
[纪要:1-conclusion] 三、 |
简答 |
| 1.2.14 |
为何 NIL 是黑的(内部叶子可以是红的) |
A |
[稿:1-逐字稿:422] 课堂问答 |
判断 |
第 2 讲(上)— Backtracking
证据:PPT_文本/ADS/第二讲(上)Backtracking.txt(312 行)
| 编号 |
考点 |
级 |
证据 |
预测题型 |
| 2.1.1 |
回溯 = 解空间树 + DFS + 剪枝函数 |
A |
[PPT:2上] Rationale |
简答 |
| 2.1.2 |
解空间树构造(子集树 / 排列树) |
A |
[PPT:2上] Eight Queens |
画图 |
| 2.1.3 |
约束函数 vs 限界函数 |
A |
[PPT:2上] Constrains |
选择 |
| 2.1.4 |
N 皇后(4 皇后为例)完整求解 |
A |
[PPT:2上] Step 1 |
画树 |
| 2.1.5 |
搜索顺序优化:最大距离优先(端点确定→砍半棵树) |
S |
[纪要:2-conclusion] 一、1 |
简答 偏理论 |
| 2.1.6 |
Minimax + 博弈树 |
A |
[PPT:2上] Tic-tac-toe |
画图 |
| 2.1.7 |
Alpha-Beta 剪枝:规则与剪枝条件 α≥β |
S |
[稿:2-逐字稿:98] "考试的时候经常会考" |
计算/画树 必考 |
| 2.1.8 |
评估函数必须廉价 |
A |
[纪要:2-conclusion] 一、2 |
简答 |
| 2.1.9 |
剪枝不改变最坏复杂度,只改实际运行时间 |
S |
[纪要:2-conclusion] 一、2 |
判断 |
| 2.1.10 |
Turnpike Reconstruction / 重构问题 |
B |
[PPT:2上] |
了解 |
| 2.1.11 |
AlphaGo 与剪枝的关系 |
B |
[PPT:2上] Games |
背景 |
第 2 讲(下)— Divide and Conquer
证据:PPT_文本/ADS/第二讲(下)Divide and Conquer.txt(348 行)
| 编号 |
考点 |
级 |
证据 |
预测题型 |
| 2.2.1 |
三步 Divide/Conquer/Combine |
A |
[纪要:2-conclusion] 二、1 |
简答 |
| 2.2.2 |
子问题必须独立 + 可合并;否则不能用分治 |
S |
[稿:2-逐字稿:170] 老师留的讨论题 |
判断/简答 |
| 2.2.3 |
归并排序偏 Combine,快排偏 Divide |
A |
[稿:2-逐字稿:140] 老师原话 |
简答 |
| 2.2.4 |
分治不必然 O(N log N)(tree traversal 为 O(N)) |
S |
[稿:2-逐字稿:140] "不要一看到分治就想到 N log N" |
判断 |
| 2.2.5 |
代入法:先猜后用数学归纳法证明 |
A |
[PPT:2下:126,151] 【Example】 |
证明 |
| 2.2.6 |
T(N)=T(N/3)+T(2N/3)+cN 非完美递归树 → 猜 O(N log N) |
S |
[PPT:2下:205] 【Example】完整证明 |
证明 高频 |
| 2.2.7 |
主定理三种情况 + 正则条件 |
S |
[PPT:2下:226,296] 【Master Theorem】×2 |
计算 必考 |
| 2.2.8 |
主定理另一形式(N^p log^k N) |
A |
[PPT:2下:313] 【Theorem】 |
计算 |
| 2.2.9 |
主定理适用形状限制(必须 N^p log^k N 形) |
S |
[稿:2-逐字稿:167] "形状太特殊了" |
判断 |
| 2.2.10 |
K 路归并:K 为常数 vs K 为变量 |
S |
[纪要:2-conclusion] 三、;[稿:3-逐字稿:23] 正答率最低题 |
计算/简答 必考 |
| 2.2.11 |
堆优化 K 路归并 O(N log K),总 O(N log N) 与 K 无关 |
S |
[纪要:2-conclusion] 三、2 |
计算 |
| 2.2.12 |
K=N 退化为选择排序(无堆)/ 堆排序(有堆) |
S |
[纪要:2-conclusion] 三、2 |
选择 易错 |
| 2.2.13 |
最近点对:Combine 步若 O(N²) 则整体退化 |
A |
[稿:2-逐字稿:140] 整例为此 |
简答 |
| 2.2.14 |
分治的重点是"复杂度分析"而非实现 |
B |
[稿:2-逐字稿:170] |
策略 |
第 3 讲(上)— Dynamic Programming
证据:PPT_文本/ADS/第三讲(上)Dynamic Programming.txt(387 行)
| 编号 |
考点 |
级 |
证据 |
预测题型 |
| 3.1.1 |
DP 本质:"用表代替递归",消除重叠子问题 |
S |
[纪要:3-conclusion] 二、1 |
简答 必考 |
| 3.1.2 |
最优子结构 + 重叠子问题(对比分治) |
S |
[纪要:3-conclusion] 二、1 |
判断/简答 |
| 3.1.3 |
矩阵链乘:枚举切分点、填表顺序 |
A |
[PPT:3上:50] 【Example】4 矩阵 |
填表计算 |
| 3.1.4 |
最优二叉搜索树 OBST:Tij/rij 递推 |
A |
[PPT:3上:132] 【Example】 |
填表 |
| 3.1.5 |
Floyd 三层循环:k 必须在最外层 |
S |
[纪要:3-conclusion] 二、2;[稿:3-逐字稿:119] 正答率 2x% |
判断/反例 必考 |
| 3.1.6 |
为何 k 不能在内层:反例构造 |
S |
[纪要:3-conclusion] 二、2 反例举证 |
反例构造 必考 |
| 3.1.7 |
前驱矩阵恢复路径同样要求 k 在外层 |
A |
[纪要:3-conclusion] 二、2 工程补充 |
简答 |
| 3.1.8 |
0-1 背包 DP(整数重量限制) |
S |
PTA HW3 题 03;[纪要:3-conclusion] 四 |
编程/填表 |
| 3.1.9 |
DP 的复杂度与"数值大小"成正比 → 非多项式(参数陷阱) |
S |
[纪要:4-conclusion] 二、2 |
判断 易错 |
| 3.1.10 |
加权活动安排只能 DP,贪心失效 |
S |
[稿:3-逐字稿:275] "这是个坑,这个公式其实是错的" |
判断 |
第 3 讲(下)— Greedy
证据:PPT_文本/ADS/第三讲(下)Greedy.txt(409 行)
| 编号 |
考点 |
级 |
证据 |
预测题型 |
| 3.2.1 |
贪心 = 局部最优 → 需证明可达全局最优 |
A |
[纪要:3-conclusion] 三、1 |
简答 |
| 3.2.2 |
交换论证 / 安全选择的证明框架 |
S |
[纪要:3-conclusion] 三、1 |
证明 必考 |
| 3.2.3 |
活动安排(区间调度):按结束时间贪心 |
S |
[PPT:3下:150] 【Theorem】 |
计算/证明 |
| 3.2.4 |
最少教室问题:教室数 = 最大重叠数 |
S |
[纪要:3-conclusion] 三、2 |
计算/简答 必考 |
| 3.2.5 |
反例:先排满一间教室的"复用轮子"策略非最优 |
S |
[纪要:3-conclusion] 三、2 策略一 |
反例构造 |
| 3.2.6 |
Huffman:频率最高的两个字符在最底层 |
A |
[PPT:3下:363,383] 【Lemma】×2 |
证明 |
| 3.2.7 |
Huffman 交换论证证明 |
A |
[稿:3-逐字稿:284] "难在证明上" |
证明 |
| 3.2.8 |
Huffman 编码构造与 WPL 计算 |
A |
[PPT:3下:203] 【Example】1000 字符 |
计算 |
| 3.2.9 |
贪心 vs DP 的边界(可否加权) |
S |
[稿:3-逐字稿:275] |
判断 |
第 4 讲(上)— NP-Completeness
证据:PPT_文本/ADS/第四讲(上)NP-Completeness.txt(424 行)
| 编号 |
考点 |
级 |
证据 |
预测题型 |
| 4.1.1 |
P / NP / NPC / NP-hard 四个类的定义与包含关系 |
S |
[纪要:4-conclusion] 一、1 |
选择/判断 必考 |
| 4.1.2 |
NP-hard 不一定在 NP 内 |
S |
[纪要:4-conclusion] 一、1 |
判断 易错 |
| 4.1.3 |
归约方向:A ≤p B ⇒ B 不比 A 易 |
S |
[纪要:4-conclusion] 一、1 |
选择 历年高频错点 |
| 4.1.4 |
多项式时间归约的形式定义 |
A |
[PPT:4上:325] For SAT |
简答 |
| 4.1.5 |
优化问题 → 判定问题(引入 K) |
S |
[纪要:4-conclusion] 一、2 |
简答 必考 |
| 4.1.6 |
归约比较必须在判定问题层面进行 |
S |
[纪要:4-conclusion] 一、2 |
判断 |
| 4.1.7 |
停机问题不可判定 |
B |
[PPT:4上:48] 【Example】 |
选择 |
| 4.1.8 |
哈密顿回路问题 |
A |
[PPT:4上:157,217] 【Example】×2 |
简答 |
| 4.1.9 |
SAT → 3-SAT 归约 |
A |
[PPT:4上:325] |
简答 |
| 4.1.10 |
团问题(clique)归约 |
A |
[PPT:4上:377] 【Example】 |
简答 |
| 4.1.11 |
最短路径 vs 最长路径:为何前者在 P 内 |
A |
[PPT:4上:263] For SHORTEST-PATH |
简答 |
| 4.1.12 |
证明某问题为 NPC 的标准三步法 |
S |
综合 |
证明 必考 |
第 4 讲(下)— Approximation
证据:PPT_文本/ADS/第四讲(下)Approximation.txt(487 行)
| 编号 |
考点 |
级 |
证据 |
预测题型 |
| 4.2.1 |
近似比 ρ(n) 的定义:max(C/C, C/C) ≤ ρ(n) |
S |
[PPT:4下:29] 【Definition】 |
填空/简答 必考 |
| 4.2.2 |
近似算法 vs 启发式(能否证明上界) |
S |
[纪要:4-conclusion] 二、1;[稿:3-逐字稿:248] |
判断 易错 |
| 4.2.3 |
PTAS vs FPTAS 的复杂度差异 |
S |
[PPT:4下:38] O(n²/ε) vs O((1/ε)²n³) |
选择 必考 |
| 4.2.4 |
参数陷阱:复杂度与数值成正比即指数级 |
S |
[纪要:4-conclusion] 二、2 |
判断 易错 |
| 4.2.5 |
装箱问题:Next Fit ≤ 2M−1 及紧例 |
S |
[PPT:4下:82] 【Theorem】+ 证明 |
证明 必考 |
| 4.2.6 |
Next Fit 在 Si<1/2 时近似比 1/(1−α) |
S |
[纪要:4-conclusion] 三、1 A 选项证明 |
证明 低频正答率 |
| 4.2.7 |
α=1/2 是 1/(1−α) 与常数 2 的分界点 |
S |
[纪要:4-conclusion] 三、1 |
选择 必考 |
| 4.2.8 |
FFD 近似比 = 3/2 及其证明 |
S |
[PPT:4下:128] 【Theorem】;[纪要:4-conclusion] 三、2 |
证明 必考 |
| 4.2.9 |
1.5 的最优性:反证 + P=NP |
S |
[纪要:4-conclusion] 三、2 反证法 |
证明 必考 |
| 4.2.10 |
First Fit 近似比 17/10 |
A |
[PPT:4下] 正文 |
记忆 |
| 4.2.11 |
K-center 问题及 2-近似 |
A |
[PPT:4下:395,434] 【Theorem】×2 |
简答 |
| 4.2.12 |
除非 P=NP,不存在 ρ<... 的近似(下界定理) |
A |
[PPT:4下:443] 【Theorem】 |
简答 |
| 4.2.13 |
算法设计三目标:全实例最优 / 特殊实例最优 / 全实例快速有保证 |
S |
[纪要:4-conclusion] 四、1 |
简答 课程总结题 |
二、统计
| 讲次 |
考点数 |
S |
A |
B |
| 1上 AVL/Splay/摊还 |
12 |
6 |
5 |
1 |
| 1下 红黑树/B+树 |
14 |
8 |
4 |
2 |
| 2上 回溯 |
11 |
3 |
6 |
2 |
| 2下 分治 |
14 |
8 |
5 |
1 |
| 3上 DP |
10 |
7 |
3 |
0 |
| 3下 贪心 |
9 |
5 |
4 |
0 |
| 4上 NPC |
12 |
6 |
5 |
1 |
| 4下 近似 |
13 |
10 |
3 |
0 |
| 合计 |
95 |
53 |
35 |
7 |
S 级 53 个 → 按"每 S 级 ≥5 题"要求,题库至少需 265 题。
A 级 35 个 × 3 = 105,B 级 7 个 × 2 = 14 ⟹ 全量三档下限 384 题。
三、老师原话级 S 级证据(最高优先级,必须命中)
| 原话 |
出处 |
对应考点 |
| "考试的时候经常会考,但是记也挺好记的" |
[稿:2-逐字稿:98] 讲 Alpha-Beta |
2.1.7 |
| "正答率最低的那道题…k 路归并,k 到底怎么样会影响时间复杂度" |
[稿:3-逐字稿:23] |
2.2.10 / 2.2.12 |
| "正答率非常低…动态规划的计算顺序,kij 这个三重顺序是不能打乱的,打乱以后就会全错" |
[稿:3-逐字稿:119] |
3.1.5 / 3.1.6 |
| "红黑树所有操作,记住一个口诀 swap colors and rotate" |
[稿:1-逐字稿:437] |
1.2.6 |
| "红黑树的绝对优势是在 deletion,最多三次旋转;AVL 是 O(log N) 次" |
[稿:1-逐字稿:470] |
1.2.7 / 1.2.8 |
| "这是个坑,这个公式其实是错的,这个地方得是权重" |
[稿:3-逐字稿:275] |
3.1.10 |
| "不要一看到分治,马上就想到一定 N log N" |
[稿:2-逐字稿:140] |
2.2.4 |
| "主定理…它和函数的形状太特殊了,一定要是这种形式才能套结论" |
[稿:2-逐字稿:167] |
2.2.9 |
| "期末卷面 40 分是潜在的斩杀线" |
[稿:1-逐字稿:26,29] |
复习策略 |
| "至少 30% 有效注释,否则 0 分" |
[稿:1-逐字稿:77] |
Project |
十道送命题、易混概念对照、必背公式
高频易错清单
全部条目均来自课堂实证信号:老师原话、正答率数据、PPT 正式定理。
标注 ★ = 老师在课上明确说会考 / 或实测正答率 <30%(最低一档)。
一、十道"送命题"(老师亲口 / 正答率最低)
| # |
问题 |
正确答案要点 |
为什么错 |
| 1 ★ |
Floyd 三层循环,k 能放内层吗? |
不能。k 必须在最外层。 若 k 内层,d[i][j] 可能未经 k−1 阶段优化就被"用掉",反例可构造;且前驱矩阵更新失效 |
老师原话:"kij 三重顺序不能打乱,打乱以后就会全错"。考试实测正答率 ~20% |
| 2 ★ |
K 路归并,K 变大时间复杂度变吗? |
取决于 K 是常数还是变量。 K 为常数:O(N log N) 不变(log_k N 与 log₂N 差常数因子)。K 为变量且线性扫描找最小:O(KN log_k N);用堆优化:O(N log N),K 被抵消 |
课堂实测正答率最低。K=N 无堆 → 选择排序 O(N²);有堆 → 堆排序 O(N log N) |
| 3 ★ |
Alpha-Beta 剪枝发生在什么条件? |
Min 层:当前值 ≤ α → 剪(父 Max 已能拿到更好);Max 层:当前值 ≥ β → 剪。等价说法:α ≥ β 时剪枝。剪枝不改最坏复杂度 |
老师说"考试的时候经常会考",规则易记但方向常配反 |
| 4 ★ |
红黑树的绝对优势在哪? |
在删除(deletion)。AVL 删除最坏需 O(log N) 次旋转;红黑树删除最多 3 次旋转。插入方面优势不大(都要 ≤2 次旋转),且红黑树多了 parent 指针开销 |
多数人误答"插入更快"。老师原话:"它的绝对优势是在 deletion 方面" |
| 5 ★ |
摊还复杂度是平均复杂度吗? |
不是。 摊还 = 最坏情况操作序列的总代价 ÷ 操作次数上限,是保证;平均复杂度需对输入分布做概率假设。Splay 单次可 O(N),但 M 次操作总代价 O(M log N) |
PPT 用"摊还"专指 amortized,与 average-case 严格区分。判断题陷阱 |
| 6 |
红黑树是 AVL 树的特例吗? |
不是。 二者是并列的不同平衡策略:AVL 严格平衡( |
BF |
| 7 |
NP-hard 一定属于 NP 吗? |
不一定。 NP-hard 只要求"所有 NP 问题都能归约到它",它本身可以不可判定(如停机问题) |
老师说"NP-hard 难度不低于 NPC,但可能根本不在 NP 内" |
| 8 ★ |
若 A 可归约到 B(A ≤p B),谁更难? |
B 更难(或至少一样难)。 解决 B 就能解决 A |
归约方向是历年高频错点,极易说反 |
| 9 ★ |
复杂度与"数值大小"成正比,是多项式算法吗? |
不是。 如 O(n·Pmax),Pmax 是数值不是输入规模 → 实际是指数级(二进制编码下)。这就是背包 DP 是伪多项式的根本原因 |
老师说"参数非多项式常数"。判断题必设陷阱 |
| 10 ★ |
α = 1/2 在装箱 Next Fit 分析里是什么? |
分界点。 Si < 1/2 时近似比上界 1/(1−α);α=1/2 时 1/(1−α)=2,与常数界 2 重合。若假设 ρ=2α,当 α<0.5 会得 ρ<1(近似解优于最优解),逻辑不可能 |
课堂讨论原题;选项 D 的经典错误 |
二、易混概念对照表(判断题高危区)
| 易混对 |
区别 |
记忆钩子 |
| 摊还 amortized / 平均 average |
摊还是最坏序列的均摊保证;平均依赖输入分布 |
摊还 = "最坏情况下的平均" |
| AVL / 红黑树 |
严格 vs 弱平衡;旋转次数 vs 树高 |
AVL h≤1.44log n;RB h≤2log(n+1) |
| B 树 / B+ 树 |
B 树每个节点都存数据;B+ 树数据全在叶子、内部只存索引、叶子有链 |
"+"= 多一条叶子链 |
| PTAS / FPTAS |
PTAS 对 n 多项式、对 1/ε 可指数;FPTAS 对 n 和 1/ε 都多项式 |
F = Fully = 连 1/ε 也管住 |
| P / NP / NPC / NP-hard |
P⊆NP;NPC = NP∩NP-hard;NP-hard 可不在 NP |
归约是"从易到难"画箭头 |
| 判定问题 / 优化问题 |
归约与难度比较必须在判定层面做 |
先改"是否≤K",再谈难度 |
| 近似算法 / 启发式 |
近似算法能证明 ρ 上界;启发式不能 |
不能证明 = 只是"随便试试" |
| 剪枝 / 降低复杂度 |
剪枝只降实际运行时间,不改最坏复杂度 |
"剪枝不改 Big-O" |
| 分治 / DP |
子问题独立 vs 子问题重叠 |
重叠就得存表 |
| 贪心 / DP |
贪心需证贪心选择性质;加权后通常只能 DP |
有权重 → 想 DP |
| 树高 h / 黑高 bh |
黑高只数黑节点,且不含起点 |
bh ≤ h/2 |
| Splay 单旋 / 双旋 |
单旋逐层上提遇长链退化 O(N);双旋(zig-zig/zag)使路径深度减半 |
"必须双旋" |
三、必须能手算/手画的动作(考试大题主力)
| 动作 |
出处考点 |
易错点 |
| 给插入序列 → 画 AVL 树并标平衡因子 |
1.1.4 |
LR/RL 的方向顺序:先转子节点,再转失衡点 |
| 给访问序列 → 画 Splay 每步形态 |
1.1.7 |
zig-zig 是先转祖父、再转父(不是连续两次单旋) |
| 给插入序列 → 画红黑树并标色 |
1.2.5 |
新节点先染红;叔红 → 变色上推(可能传到根,根强制黑) |
| 算红黑树某节点 black-height |
1.2.2 |
bh 不含起点自身;NIL 算黑且计入 |
| 给 M 阶 B+ 树插入 → 画分裂过程 |
1.2.11 |
键数上限 M−1、下限 ⌈M/2⌉−1;分裂中间键上移 |
| 给博弈树 → 标 Alpha-Beta 剪枝点 |
2.1.7 |
剪枝后不计算被剪子树的值 |
| 递归式 → 主定理判情况 |
2.2.7 |
先算 log_b a,再与 f(n) 比较;case 3 需查正则条件 af(n/b) ≤ cf(n) |
| 矩阵链 / OBST / 背包 → 填 DP 表 |
3.1.3/3.1.4/3.1.8 |
填表顺序必须按子问题规模递增 |
| Floyd → 逐轮更新 D 矩阵 |
3.1.5 |
k 外层;每轮 k 只允许经过节点集 {1..k} |
| 区间 → 求最少教室数 |
3.2.4 |
= 时间轴上最大重叠数(扫描线) |
| Huffman → 建树并算 WPL |
3.2.8 |
每次取两个最小合并,新节点回插 |
| 装箱 → Next Fit / FFD 装填并算近似比 |
4.2.5/4.2.8 |
Next Fit 只回看当前箱;FFD 先降序再 First Fit |
四、必背公式与界限
| 结论 |
公式 |
| AVL 高度上界 |
h ≤ 1.44 log₂ N |
| AVL 最少节点数 |
N(h) = N(h−1) + N(h−2) + 1,N(0)=1, N(1)=2 |
| 红黑树树高 |
h ≤ 2 log₂(N+1) |
| 红黑树子树规模 |
size(x) ≥ 2^bh(x) − 1 |
| 主定理 Case1/2/3 |
比较 f(N) 与 N^(log_b a):小→Θ(N^log_b a);等→Θ(N^log_b a · log N);大→Θ(f(N)) |
| splay 摊还 |
单次 O(log N) 摊还;M 次共 O(M log N) |
| Next Fit |
≤ 2M − 1;Si<1/2 时 ≤ 1/(1−α)·M* |
| First Fit |
≤ 17/10 · M* |
| FFD |
≤ 3/2 · M* |
| 近似比定义 |
max(C/C, C/C) ≤ ρ(n) |
| PTAS / FPTAS |
PTAS: O(n^{f(1/ε)});FPTAS: poly(n, 1/ε) |
五、Project / 平时分相关的"非知识"要点
- 期末卷面 必须 ≥40 分,否则总评直接不及格(平时满分也救不了)
- 平时分 50% = 分组讨论 10% + 作业 5% + Research Project 25%;期末 50%
- Project 代码 有效注释 ≥30%,否则 0 分
- 复杂度分析必须给推导过程,不能只写结论
- 禁止把源码直接贴进报告,须用伪代码 / 流程图 + 文字说明
- 提交后要下载回来验证文件完整性