本文中,设树中所有权都是正的。
直径的定义:不经过同一个点两次的最长链。
中心的定义:对于点 \(u\),如果满足所有点到点 \(u\) 距离的最大值最小,则点 \(u\) 是中心。
请注意树的中心和树的重心是两个不同的概念。
本文中 \(u \sim v\) 代表树上 \(u \leftrightsquigarrow v\) 唯一路径的权值。
性质一
如果一个点 \(u\) 在一条直径 \(D\) 上,\(D\) 的端点是 $ s$ 和 $ t$,那么 \({u \leftrightsquigarrow s}\) 和 \({u \leftrightsquigarrow t}\) 中较长的一定是一条从 \(u\) 出发的最长链。
假设存在一条链 \(u \leftrightsquigarrow w\) 比 \(u \leftrightsquigarrow s\) 和 \(u \leftrightsquigarrow t\) 都长。
因为 \(s\),\(u\),\(t\) 依次位于一条链上(直径显然是链),
所以 \(u \leftrightsquigarrow w\) 如果和 \(u \leftrightsquigarrow s\) 有交点,就一定和 \(u \leftrightsquigarrow t\) 无交点(否则会出现环)。
如果 \(u \leftrightsquigarrow w\) 与 \(u \leftrightsquigarrow s\) 没有交点,那么 \(s \leftrightsquigarrow u \leftrightsquigarrow w\) 才应该是直径。
如果 \(u \leftrightsquigarrow w\) 与 \(u \leftrightsquigarrow t\) 没有交点,那么 \(t \leftrightsquigarrow u \leftrightsquigarrow w\) 才应该是直径。
反正无论如何都和 \(D\) 是直径矛盾。命题成立。
性质二
从任意一个点出发,能到达的最远点一定是某条直径的端点。
下面这个图中,我们从 \(x\) 找到最远的点 \(y\),并设原树直径为 \(m \leftrightsquigarrow n\)。
性质三
直径的端点一定都是叶子节点。
如果直径的端点不是叶子节点,即有两个出度及以上,那么直径这条链只会占用一个出度,一定可以从另一个出度继续走下去从而达到更长的链。
性质四
用一条边 \({(u, v)}\) 将两棵树 \({T_1}\),\({T_2}\) 连接,合成的新树 \(T\) 的所有直径都只有两种情况:
- 不经过 \({(u, v)}\),仍为原来 \({T_1}\) 的某条直径,或仍为原来 \({T_2}\) 的某条直径。
- 经过 \({(u, v)}\),两个端点分别落在 \({T_1}\) 和 \({T_2}\) 中,且分别是 \({T_1}\),\({T_2}\) 中某条直径的某个端点。
不经过 \((u, v)\),即新直径只能在 \(T_1\) 或 \(T_2\) 中走,很明显它必须是 \(T_1\) 的一条直径或 \(T_2\) 的一条直径。
经过 \((u, v)\),则设新直径为 \(s \leftrightsquigarrow u \longleftrightarrow v \leftrightsquigarrow t\)。
不妨设 \(s \leftrightsquigarrow u\) 这段在 \(T_1\) 中,\(v \leftrightsquigarrow t\) 这段在 \(T_2\) 中。为符合直径定义,我们期望最大化 \(s \leftrightsquigarrow u\)