树的重心 树的直径 学习笔记
定义:以 $u$ 为根时最大子树最小的 $u$。
性质:
- 重心到所有点的距离和最小。(例:P1395 会议 )
- 以重心为根时,所有子树大小 $\le\dfrac n2$。(一些结论的前置结论)
- 加 / 删叶子最多使重心移动一条边。(这个好像没啥用……不知道有没有动态树求重心的题)
- 把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线上(下一条结论的前置结论)。
- $u$ 子树的重心,一定在 $u$ 到 $u$ 的重孩子子树的重心这条路径上(例:CF685B)。
导出结论:$u$ 子树的重心一定在 $u$ 所在的重链上(可能有用)。
- 设 DFS 序列的(带权)中点为 $k$,则最浅的(带权)重心为 $k$ 上方第一个子树大小大于整棵树的一半的点(爱来自模拟赛)。
定义:最长链。
性质:
- 设点集 $S_1$ 的直径为 $a\to b$,点集 $S_2$ 的直径为 $c\to d$,则 $S_1\cup S_2$ 的直径端点一定是 $a,b,c,d$ 中的两个点(例:Qtree4)。
感谢 Estelle_N
- 若一棵树存在多条直径,那么这些直径交于一点且交点是这些直径的中点(也就是树的中心)(没啥用)。