将题目的要求形式化得到:

max⁡i=1nmax⁡j=indis(i,j)\max\limits_{i=1}^n\max\limits_{j=i}^n dis(i,j)

化简得到:

max⁡i=1nmax⁡j=indep(i)+dep(j)−2×dep(lca(i,j))\max\limits_{i=1}^n\max\limits_{j=i}^n dep(i)+dep(j)-2\times dep(lca(i,j))

那么根据欧拉序求 lcalca 的思想,我们可以得到:

dep(lca(i,j))=min⁡k=min⁡(Li,Lj)max⁡(Ri,Rj)dep(k)dep(lca(i,j))=\min\limits_{k=\min(L_i,L_j)}^{\max(R_i,R_j)} dep(k)

发现在第 22 个式子中 dep(lca(i,j))dep(lca(i,j)) 的系数是 −2-2,那么如果根据第 33 个如果取到的在区间内的不是 lcalca,那么在第 22 个式子中一定是不优的。同样的,如果取值的范围小于第 33 个式子的范围,那么取值也肯定没有上后优。

以 aa 命名在将这棵树的欧拉序处理出来之后,在欧拉序对应的位置放上 depdep 进行替换编号形成的序列,那么题目求解的实际上就是:

max⁡{ai−2×aj+ak∣i<j<k}\max\{a_i-2\times a_j+a_k\mid i\lt j\lt k\}

考虑使用线段树合并进行维护,时间复杂度为 O(nlog⁡n)O(n\log n)。