最近公共祖先。
#include<iostream>
using namespace std;
int jump(int u,int step)
{
for (int k=0 k<=20 k++) if (step&(l<<k)>0) u:=f[u][k];
return u;
}
int lca(int u,int v)
{
if (deep[u])<deep[v]) swap(u,v);
u=jump(u,deep[u]-deep[v]);
for (int k=20;k>=0; k--) if (f[u][k]!=f[v][k]) u=f[u][k],v=f[v][k];
return u==v?u:fa[u];
}
int main()
{
lca;
}