基础算法系列 · 总纲


1. 与已有讲义的边界

1.1 已经写好、本线只指路不重写

内容 在哪 本线怎么处理
字符串算法(哈希/KMP/Trie/Manacher/Z) ds-series/ds-strings.md 第 07 讲双指针会用到”二分 + 哈希求 LCP”,只指路
高精度 math-series/05-high-precision.md 只指路(2026-09-04 已从顶层迁入数学线
单调栈与单调队列 ds-series/02 第 07 讲双指针的近邻,两讲要写清分界(见 2.4)
STL、离散化、bitset、pb_ds ds-series/01 第 03 讲讲比较器时只指路
二叉堆、优先队列 ds-series/03 第 03 讲贪心用到堆时只指路
逆序对(归并 vs 树状数组,含实测) ds-series/08 §6.1 第 08 讲分治不重做这个实测,直接引用它的结论
图上的 DFS / BFS(含爆栈阈值、01-BFS、状态图搜索) graph-series/0203 第 04、05 讲只讲”非图搜索”(见 2.3)
记忆化搜索 dp-series/01 第 05 讲区分”搜索 + 记忆化”与”DP”时只指路
状压 DP、数位 DP dp-series/0607 第 04 讲讲状态编码时只指路
排序算法的内部机制与稳定性 cspj-series/08(初赛视角)、gesp4-05 第 03 讲不重讲实现,只讲”考场上怎么用”
复杂度速记表、结构选型判定表 ds-series/13 本线第 00 讲的复杂度一节直接指过去

1.2 搜索这块的分界线(最容易打架的地方)

graph-series/0203 已经把”图上的搜索”讲透了。本线第 04、05 讲讲的是另一半

graph-series/02、03 本线 04、05 讲
搜索空间 图/网格是给定的,点和边是输入 解空间是自己生成的(排列、子集、划分、放置方案)
核心动作 vis 标记 + 遍历 选择 → 递归 → 撤销选择(回溯)
优化手段 双端队列、状态编码、启发式 剪枝(可行性 / 最优性 / 对称性)、搜索顺序
典型题 迷宫、八数码、连通块 八皇后、数独、全排列、组合、划分

一句话分界graph 那两讲问”这张图怎么走”,本线这两讲问”这些方案怎么枚举、怎么剪”。 两边都要在开头写死这句话。


2. 分讲总表

难度层:J = CSP-J 复赛够用;J⭐ = J 组进阶;S = CSP-S 复赛必备;S⭐ = S 组进阶。

# 标题 一句话 大纲 主要例题 状态
00 总纲(本文) 边界、大纲对应、写作约定
01 前缀和与差分 花 $O(n)$ 预处理,把每次操作压到 $O(1)$;两者互为逆运算 未单列(真题高频) J P8218P2367P3397、P2004、P1115、P4552 01-prefix-sum-difference.md2026-09-04 从顶层迁入
02 二分查找与二分答案 不知道答案是多少,但给你一个答案你能验证 【4】二分法 J⭐ P2440P2678、P3853、P1902、P4343、P1024、P3382 02-binary-search.md
03 排序的应用与贪心 比较器、多关键字,以及”怎么证明这个贪心是对的” 【3】贪心法、【3~6】排序 J P1223P2240P1803、P1094、P2949 03-sorting-and-greedy.md
04 枚举、模拟与构造 J 组 T1/T2 的全部;子集枚举与状态编码 【1】枚举法、【1】模拟法 J P7909P11228、P5660、P1003、P2141、P2036、P9748、P14358 04-enumeration-simulation-construction.md
05 搜索(一):回溯与剪枝 选择 → 递归 → 撤销;三类剪枝 + 搜索顺序也是剪枝 【6】搜索的剪枝优化 J⭐ P1219、P1706、P1036、P2404、P2392、P1088、P1731、P1092 05-backtracking-and-pruning.md
06 搜索(二):迭代加深、双向、折半 指数级搜索的三种压缩手段 【7】迭代加深、【7】双向广搜、【7】启发式搜索 S⭐ P1763、P2324、P2534、P1032P4799、P3067、P5691 06-iddfs-bidirectional-mitm.md
07 双指针与滑动窗口 两个指针都只往一个方向走 大纲未单列 J⭐(初赛为主) P1147P1638、P1381、P1102P1886、P1440、P2564、⭐P7915 07-two-pointers.md
08 分治 主定理,以及分治的建模视角 【6】分治算法、【5】归并/快排 S P1115、P1923、P1908、P1257、P1429、⭐⭐P11234 08-divide-and-conquer.md

为什么没有”倍增”独立一讲ds-series/07(ST 表 = 序列上的倍增)与 graph-series/12(LCA 倍增)已经从两个方向讲透了,math-series/01(快速幂)是第三个。三处已经互相印证,再单开一讲只会重复;本线第 00 讲的知识地图里点一句它们的同源关系即可。


3. 每讲要点细化

01 前缀和与差分