树的重心 / 直径 - 树上选点问题 / 树上路径问题
重心
树的重心定义为点 \(s\),满足所有点到 \(s\) 的距离和最小。
性质:子树大小限制
以 \(s\) 为根时,所有子树的大小 \(\le \dfrac{n}{2}\),最大子树大小最小。
性质:点对距离限制
\(s\) 到所有点的距离之和最小。
性质:重心个数限制
树的重心最多有两个,且相邻。
奇数个结点的树重心唯一。
性质:删点重心移动
一棵树增或删一个叶子结点,重心移动的距离 \(\le 1\)。
性质:加边重心移动
把两棵树通过一条边相连,树的重心在原来两重心的路径上。
CF1824B2 LuoTianyi and the Floating Islands (Hard Version)
\(k\) 为奇数答案为 \(1\)。否则 \(k\) 为偶数,所有重心形成树上连通块,只需计数边数,\(+1\) 即为点数。
对于左右 \(a,b\) 个点的边,贡献即为 \(\dbinom{a}{k/2}+\dbinom{b}{k/2}\)。
启发:在遇到树上连通块时可以考虑之间的边。
直径
直径定义为图上最长的简单路径。
性质:给定端点直径
树上以 \(x\) 为一端的直径长度另一端一定为直径某个端点。
利用这一点,可以处理一些路径问题。
CF1413F Roads and Ramen
结论:路径一端一定是直径。
证明:考虑两种情况:


浙公网安备 33010602011771号