int de=log2(deep[x]-deep[y]); for(int i=de;i>=0;i--){ if(deep[x]==deep[y]) break; x=f[x][i]; }
int now=deep[x]-deep[y]; while(now>0) { int k=log2(now); now-=(1<<k); x=f[x][k]; }
在调平的时候为什么那个for的错了 while的是对的……