题面 题解 我们求它子树的权值和,一般用dfs序把树拍到线段树上做. 当它换根时,我们就直接把root赋值就行了,树的结构不去动它. 对于第二个操作,我们得到的链和根的相对位置有三种情况: 设两点为A.B,LCA 为 C,一个点x的dfs序为ld[x],从它的子树里出来时的dfs序为rd[x] 第一种情况,根是C的祖先,他的实际操作区间就是原本的子树区间[ld[C],rd[C]] 第二种情况,根在A.B路径上,那么它的实际LCA就应该是root,操作区间为[1,n] 第三种情况,根在C的子树上,…