树的重心 / 直径 - 树上选点问题 / 树上路径问题

重心

树的重心定义为点 \(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

结论:路径一端一定是直径。

证明:考虑两种情况:

posted @ 2023-07-09 21:45  Network_Error  阅读(50)  评论(0)    收藏  举报