设(f_i)表示(i)子树最少扩展多少次,(siz_i)表示子树大小。 那么有 (f_u=siz[u] mod 2(siz[u]-siz[v]-1ge f[v])) 否则(f_u=siz[v]+1-(siz[u]-siz[v]-1)) 其中(v)是(u)的重儿子。 第一个式子是因为,考虑重儿子可以被抵消掉,所以一定存在方案配对到剩余(<2) 第二个式子是,其他子树全部抵消掉重儿子。 我们判断是否能停在(x)上,可以把([1,x])的链缩成一个点。 换根(dp)即可。