定义: dfs序:每个节点在dfs深度优先遍历中的进出栈的时间序列。
性质: dfs序可以把一棵树区间化,即可以求出每个节点的管辖区间。
对于一棵树的dfs序而言,同一棵子树所对应的一定是dfs序中连续的一段。
code:
void dfs(int x,int fa){
in[x] = ++cnt;
for (int i = head[x];i;i = ed[i].nxt){
int to = ed[i].to;
if (to == fa) continue;
dfs(to,x);
}
out[x] = cnt;
}