组目录:排序与基础算法族栈队列与单调结构族堆与优先队列族并查集族区间查询与分块族线段树族可持久化数据结构族平衡二叉搜索树族高级树结构族哈希与链表族动态规划基础族DP优化族高级DP族搜索算法族图基础与遍历最短路族生成树族连通性族网络流族二分图与匹配族树算法族欧拉与哈密顿族图论高级专题字符串匹配族字典树与AC自动机族后缀结构族后缀自动机族回文族Lyndon与周期族数论基础族数论进阶族数论高级族组合计数基础族组合进阶族多项式与FFT族生成函数族线性代数族概率族数值方法族大整数与数制族凸包族平面扫描与几何求交计算几何基础与度量树链剖分与动态树可持久化数据结构分块与根号算法莫队算法族高级线段树与离线专题(topic 域)调度与其他专题IO与常数优化族位运算族Python竞赛特性族调试与对拍族随机化与元启发式族博弈论族离线与杂项技巧族竞赛策略族工具链族前沿趋势组
组简介
本组 10 个知识点,属于 图论 域,覆盖阶段 basic / advanced。
优先级分布:P0 ×3 · P1 ×3 · P2 ×3 · P3 ×1
阶段分布:advanced ×4 · basic ×2 · intermediate ×4
节点目录 (10 个)
| 节点 ID | 名称 | 阶段 | 优先级 | 简介 | 例题数 |
|---|---|---|---|---|---|
| tree-basics | 树基础 | basic | P0 | 树的基本概念:根、叶、深度、子树、父亲;无根树/有根树定义,邻接表/父数组存储,DFS/BFS 遍历 | 3 |
| lca | 最近公共祖先(LCA) | intermediate | P0 | 倍增预处理O(VlogV)查询O(logV),或Tarjan离线O(α);欧拉序转RMQ可O(1)查询 | 3 |
| tree-diameter | 树的直径 | basic | P0 | 树上最长简单路径,两次DFS或树形DP O(V),负权边只能树形DP | 3 |
| tree-centroid | 树的重心 | intermediate | P1 | 删除后最大连通块大小不超过 n/2 的节点,点分治/重心分解基础 | 4 |
| hld | 树链剖分(HLD) | intermediate | P1 | 重链剖分把树剖为若干重链,配合线段树 O(log^2 n) 维护路径/子树信息,亦可 O(log n) 求 LCA | 3 |
| dsu-on-tree | 启发式合并(dsu on tree) | intermediate | P1 | 轻儿子清空+重儿子保留的树上离线统计,子树查询 O(n log n) | 3 |
| centroid-decomposition | 点分治 | advanced | P2 | 重心递归分解,统计树上路径 O(n log n),建点分树后支持带修 | 4 |
| virtual-tree | 虚树 | advanced | P2 | 把关键点及其 LCA 压缩成小树,DP 复杂度从 O(nq) 降到 O(Σk log k) | 3 |
| prufer-code | Prüfer序列 | advanced | P2 | 树与 n-2 长度序列的双射,证明 Cayley 公式 n^(n-2),标号树计数利器 | 3 |
| tree-hash | 树哈希 | advanced | P3 | 把子树哈希成多重集函数值,判定有根/无根树同构 | 3 |
学习路径提示
本组内存在 6 条前置依赖边(prerequisite),推荐先掌握前置知识点,再进入依赖它的节点。
推荐阅读顺序(拓扑序)
- 树基础 → 最近公共祖先(LCA)LCA需要理解树的祖先/深度关系
- 树基础 → 树的直径树的直径需要理解树的路径概念
- 树基础 → 树的重心树的重心需要理解子树大小概念
- 最近公共祖先(LCA) → 树链剖分(HLD)树链剖分重链跳转需理解LCA思想
- 最近公共祖先(LCA) → 虚树虚树构建需LCA排序去重
- 树的重心 → 点分治点分治递归选重心分解子树