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

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

化简得到:

maxi=1nmaxj=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))=mink=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{ai2×aj+aki<j<k}\max\{a_i-2\times a_j+a_k\mid i\lt j\lt k\}

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