P14020 ICPC 2024 Nanjing R 二叉树题解

2025-09-10

一道很有意思的题。

先让我们来观察一下。题目说的这个树是一个二叉树,所以每个点的度数小于等于三。

然后,题目要求我们找到一个树里面的点。并且只有 $\log n$ 次询问机会。$\log n$,定位某个点。好像在哪里见过?这很像 P4886。那道题我们用的是点分治的思路。所以这道题也是类似。我们进行点分治。比如说我们目前的的分治中心在 $c$。那么有三种情况。

  1. $c$ 只有一个儿子

    这种情况判断一下答案在不在儿子的子树内,如果在就直接往那个儿子递归就可以了。

  2. $c$ 有两个儿子

    设两个儿子分别为 $x,y$。然后询问 ? x y。如果结果不为 $1$,我们就往距离答案近的儿子递归。否则答案就是 $c$。

  3. $c$ 有三个儿子

    设三个儿子分别为 $x,y,z$。将三个儿子按照子树大小从大到小排序。然后询问 ? x y。如果结果不为 $1$,我们就往距离答案近的儿子递归。否则答案要么为 $c$,要么在 $z$ 的子树里。进行递归即可。

复杂度:就是点分治的复杂度 $O(n \log n)$。