考察点:倍增求 lca。
注意到这个题是简单的, 所以不讲部分分了。
首先注意到,我们的求 LCA 可以用倍增维护。
总所周知,我们删除一个叶子节点的倍增信息是容易的,而倍增又是可以动态加入的(你好好考虑一下倍增走的过程)。
因此,我们叶子节点的倍增信息是可以直接更新的。
然后就做完了,复杂度 O(nlogn)O(n \log n)O(nlogn)。
为什么倍增可以动态加入呢,因为每次加入他的时候祖先的倍增信息都是完好的,因此可以直接维护。
注册一个 CZOJ 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 CZOJ 通用账户