题解 CF1370F2 The Hidden Pair (Hard Version)

link
容易想到先全局跑一遍,找到这两个点之间的简单路径长度 \(L\) 和之中的点,并把其作为根。
然后就不会做了。。。。深入思考?

不妨二分找出最大的深度使得此深度上存在一点离两个距离为 \(L\)。最多二分 \(\lceil\mathrm{log}_2{1000}\rceil=10\) 次。考虑最后一次二分会让我们精确地找出一个标记点,所以我们需要再花 \(1\) 次操作找出对应深度的点。这里注意如果两个点深度相同,那么查询另一点时需要把这个点避开。
操作总数=\(1+10+1=12>11\) 次,出题人特意构造!!!不过可以过 Easy Version 了。

这个时候不妨用一些 小小的 trick 优化掉。首先刚开始那一次肯定是无法优化的,最后那一次也肯定是无法优化的。那就只能优化二分了?想到优化上下界。发现下界 \(\geqslant \lceil \frac L 2 \rceil\),上界 \(\leqslant L\),那么范围 \(\leqslant \lfloor \frac L 2 \rfloor \leqslant 500\),便可以少一次二分。

posted @ 2022-06-29 21:55  Saintex  阅读(20)  评论(0编辑  收藏  举报