我这个做法有道理吗?
查看原帖
我这个做法有道理吗?
253946
raincity楼主2024/8/20 15:09

考虑维护当前答案的候选点集 SS,初始为整棵树。

询问一个点 uu 时,若返回 11,则令 S←S∩subtree⁡(u)S \gets S \cap \operatorname{subtree}(u);若返回 00,则令 S←S−subtree⁡(u)S \gets S - \operatorname{subtree}(u),然后令 S←{fau∣u∈S}S \gets \{fa_u \mid u \in S\}。显然,SS 始终连通。

可以发现,操作后 SS 不超过 max⁡(sizu,n−sizu)\max(\text{siz}_u, n - \text{siz}_u),也就是这是一个边分治的形式。

边分治在图是菊花图的时候会被卡成 O(n2)O(n^2),但是此时树的深度很小。人类智慧地, 取 uu 为 SS 的根结点 rtrt 的 ⌈lenrt2⌉\lceil {\text{len}_{rt} \over 2} \rceil 级长儿子询问,发现直接过了。甚至直接把询问次数调成 100100 都能过(即官方题解里的 Bonus),大家有什么头绪吗?

提交记录

2024/8/20 15:09
加载中...