本题当然可以通过大力讨论每棵子树的size的大小关系,然后用各种数据结构暴力维护.但是我更倾向于用一种更为性质的做法. 首先讲一下我在考场上想到的做法(没写).就是考虑换根,在换根的过程中计算每一条边删去后得到的两棵子树的重心, 由于重心的一些性质,如果我们把以点v的所有儿子为根的子树的重心求了出来,那么我们要求以点v为根的子树的重心时,可以保证重心一定在v的重儿子子树的重心到v的链上,那么我们就可以通过链上倍增来实现对多棵子树的重心的合并.在换根时维护每个点子树size,以及子树内的重心,换根…