只含简单环的图可以找出所有环.
void get(int x, int y) { if (dep[x]<dep[y]) return; ++cnt; v[cnt].pb(x); for (; x!=y; x=fa[x]) v[cnt].pb(x); } void dfs(int x, int f) { fa[x]=f,dep[x]=dep[f]+1; for (int y:g[x]) if (y!=f) { if (dep[y]) get(x,y); else dfs(y,x); } }
原文:https://www.cnblogs.com/uid001/p/10752223.html