伪代码:
栈:当前dfs路径上的点
low[x]:x能到达的点中最小的dfn
dfs(x,t)
将x入栈
dfn[x]=t
low[x]=t
for(x,y)
if(!vis[y])
dfs(y,t+1),low[x]=min(low[x],low[y]);
else
if(y在栈中(在路径上))
low[x]=min(low[x],low[y])
if(low[x]=dfn[x])
将栈出到x
伪代码:
栈:当前dfs路径上的点
low[x]:x能到达的点中最小的dfn
dfs(x,t)
将x入栈
dfn[x]=t
low[x]=t
for(x,y)
if(!vis[y])
dfs(y,t+1),low[x]=min(low[x],low[y]);
else
if(y在栈中(在路径上))
low[x]=min(low[x],low[y])
if(low[x]=dfn[x])
将栈出到x