1
2
3
4
5
6
7
8
ll lca(ll x,ll y){
if(dep[x]<dep[y])swap(x,y);
ll cd=dep[x]-dep[y];
for(int i=0;cd;i++,cd>>=1)if(cd&1)x=fa[x][i];
for(int i=25;i>=0;i--)if(fa[x][i]!=fa[y][i])x=fa[x][i],y=fa[y][i];
if(x!=y)x=fa[x][0];
return x;
}

可以给倍增求lca提提速