题意 看见数据范围就知道是虚树,于是先建出虚树. 考虑先求出虚树上的点的管理点,显然两边dfs,一遍从下往上,一遍从上往下. 之后考虑不在虚树上的点,对于虚树上的每一条边\((u,v)\),我们考虑上面未出现在虚树上的点的个数是多少,显然是\(u\)包含\(v\)的儿子\(x\)的子树的大小减去\(v\)子树的大小,这个可以倍增求出. 考虑\(u,v\)两点的管理点是否相等,如果相等那么直接加上\(size[x]-size[v]\)即可,不相等\(u->v\)就必定存在一个分界点,于是我们可以倍…