树网的核
主要是性质的证明,见这篇题解
其他的性质证明都很容易看懂,主要是记住:所有直径的点的交集非空,所有直径的中点相重合
然后来证明一下为什么随便选一条直径就可以了
我们先画出图
由之前的定理的证明,所有直径一定长成这个样子。就是从中点\(m\)开始往左右两边走,走到拐点时可以选择走支路也可以选择继续走,所有组合就是所有直径
然后我们来看看蓝书上的答案表达式:
\[max(\underset{{1≤k≤t}}{max}(d[u_k]),dist(u_1,u_i),dist(u_j,u_t))
\]
对\(\underset{{1≤k≤t}}{max}(d[u_k])\)来说,我们考虑某一个点\(p\)
如果说\(p\)位于所有直径的交集中(如下),那么他的答案贡献不会变,因为任选一条直径都包含\(p\)
如果\(p\)在交集之外(如下),那么他的贡献会被第一个拐点\(q\)覆盖(也就是说\(d[p]\leq d[q]\)),因为任选一条直径一定都包含\(q\),而且\(d[q]\)是直径的一部分,由直径的最长性得证
也就是说我随便选一条直径,\(\underset{{1≤k≤t}}{max}(d[u_k])\)的值不会变
对于\(dist(u_1,u_i),dist(u_j,u_t)\)同理分析即可