这是我代码 update:
void update(int n,int x,int y,int pos){
while(top[x]!=top[y]){
if(dep[top[x]]<dep[top[y]])swap(x,y);
change(1,1,n,p[fa[top[x]]],p[x],pos);
x=fa[top[x]];
}
if(dep[x]>dep[y])swap(x,y);
change(1,1,n,p[x],p[y],pos);
}
然而它是错的,因为第 4 行应该是:
change(1,1,n,p[top[x]],p[x],pos);