
void dfs(int u)
{
for(int i = ; i <= n; i++)
{
if(visit[i]&&ask[u][i])
{
LCA[u][i] = Find(i);
}
}
visit[u] = true;
for(int i = ; i < g[u].size(); i++)
{
int son = g[u][i];
dfs(son);
father[son] = u;
}
}
理解: 求 u和v的lca rt
在dfs->rt 过程中 将u不断的上提使他的father为rt 再访问v的时候就知道了答案 大概就是这样 233