基环树的 dfs 找环
基环树 dfs 找环
void dfs(int u){
dfn[u]=++idx;
for(int i=head[u];i;i=e[i].nxt){
int v=e[i].v;
if(v==fa[u]) continue;
if(!dfn[v]) fa[v]=u,dfs(v);
else{if(dfn[v]<dfn[u])continue;G[++g]=v;for(;v^u;v=fa[v])G[++g]=fa[v];}
}
return;
}