写在前面
首先,在学树链剖分之前最好先把 LCA、树形DP、DFS序 这三个知识点学了
如果这三个知识点没掌握好的话,树链剖分难以理解也是当然的。
树链剖分
树链剖分 就是对一棵树分成几条链,把树形变为线性,减少处理难度
- 概念
- dfs1()
- dfs2()
- 对剖过后的树建线段树
- 处理问题
概念
- 重儿子:对于每一个非叶子节点,它的儿子中 儿子数量最多的那一个儿子 为该节点的重儿子
- 轻儿子:对于每一个非叶子节点,它的儿子中 非重儿子 的剩下所有儿子即为轻儿子
- 叶子节点没有重儿子也没有轻儿子(因为它没有儿子。。)
- 重边:连接任意两个重儿子的边叫做重边
- 轻边:剩下的即为轻边
- 重链:连接
时间: 2024-10-11 05:53:52