对 T_1T1 进行边分治。每次分治的时候,考虑跨越中心边的两个所有路径。中心边将当前连通块分为左右两个连通块 LL 和 RR。设点 ii 到中心边的距离为 d_1(i)d1(i),那么我们就是要找一对 i\in L,j\in Ri∈L,j∈R,使得 d_1(i) + d_1(j) + dist_{T_2}(i,j) + dist_{T_3}(i, j)d1(i)+d1(j)+distT2(i,j)+distT3(i,j) 最大。
建立 L\cup RL∪R 的关于 T_2T2 的虚树 T_2^{'}T2′,在虚树上进行 DFS。设点 ii 在 T_2T2 上的带权深度为 d_2(i)d2(i)。在虚树上 DFS 到 pp 的时候,考虑所有在 T_2^{'}T2′ 中的 LCA 为 pp、且 i\in L,j\in Ri∈L,j∈R 点对 (i,j)(i,j),求出 d_1(i) + d_2(i) + d_1(j) + d_2(j) + dist_{T_3}(i,j) - 2d_2(p)d1(i)+d2(i)+d