挂一个交互出题人,喜欢绑包还把询问次数开到极限
ETO_leader · · 题解
spj 的输出信息真的很有参考价值 /bx
Solution
考虑 subtask2 怎么做。
我们显然可以钦定度数为 mark 时可以标记目标节点到根的所有点。
然后我们现在的问题是如何在询问的时候沿着被染色的点走并尽量少地访问未染色节点。
首先我们可以直接往根走,直到遇到第一个染色节点,不难发现这一步的额外步数是
现在我们需要将当前节点沿着染色的路径往子树里走,不难想到重链剖分的轻重边切换次数是
现在讨论 subtask3,我们假设这棵树的性质足够好,则可以把根节点设置为树的重心。
那么如果有两个重心怎么办,可以通过复杂的分类讨论区保证正确性并且让询问次数多出好几次过不去,其实只要在染色时钦定离目标更近的点为根,然后在询问的时候任选一个重心为根,如果跳到根都没被染色就去另外一个重心。
然后可能需要稍微卡一下询问次数 /kk
Code
QOJ Link