树上基础题单

为树形 DP、LCA 和树链剖分准备的基础题单,覆盖树遍历、子树信息、倍增、树上差分和换根 DP。

0 / 0 已完成

树上基础题单

树链剖分之前,至少要能熟练处理父子关系、深度、子树大小、DFS 序和 LCA。树上问题先问“这是子树信息还是路径信息”,再决定使用哪种工具。

一、树的表示与遍历

先把边表、根、父亲、深度和遍历顺序写清楚。二叉树题是理解递归结构的好入口。

二、树形 DP 与子树信息

树形 DP 通常是“先递归处理孩子,再由孩子状态合并父亲状态”。要明确状态是否允许选择当前节点,以及父子之间的限制。

三、LCA 与倍增

LCA 是树上路径问题的共同前置。先理解朴素向上跳,再用倍增把跳跃过程压到对数复杂度。

四、树上差分与路径统计

路径加、路径计数不一定要马上上树链剖分。先用 LCA 和差分把所有路径贡献汇总到节点,再做一次自底向上的统计。

过关标准

进入树链剖分前,应能独立解释:

text
dfs 序为什么能把子树变成连续区间:
LCA 如何把路径拆成两条向上的链:
树上差分在路径端点处为什么这样加减:
树形 DP 为什么可以后序合并: