[GDKOI2023 提高组] 游戏
注意到三个点之间的路径有一个中心,设三个点距离中心分别为 \(a,b,c\)。
\[\begin{cases}
a+b=x\\
b+c=y\\
a+c=z\\
\end{cases}
\]
则 \(a,b,c\) 可知。
找到一个点,满足有长为 \(a,b,c\) 的链在不同的子树中。
从每个点出发,找到最长链,次长链,次次长链,我们需要在满足最长和次长之后次次长链最大的点,二维偏序即可。
代码太长了不想写,不过都是一堆比较简单的算法实现应该不难。
注意到三个点之间的路径有一个中心,设三个点距离中心分别为 \(a,b,c\)。
则 \(a,b,c\) 可知。
找到一个点,满足有长为 \(a,b,c\) 的链在不同的子树中。
从每个点出发,找到最长链,次长链,次次长链,我们需要在满足最长和次长之后次次长链最大的点,二维偏序即可。
代码太长了不想写,不过都是一堆比较简单的算法实现应该不难。