void tarjan(int u) {
low[u]=dfn[u]=++dfstim;
st[++top]=u;
for(rint i=head[u];i;i=e[i].nxt) {
int v=e[i].to;
if(!dfn[v])tarjan(v),low[u]=min(low[u],low[v]);
else if(!scc[v])low[u]=min(low[u],dfn[v]);
}
if(low[u]==dfn[u]) {
++C,scc[u]=C;
while(st[top]!=u)scc[st[top--]]=C;
--top;
}
}
相关文章
- 02-28Tarjan缩点(把强连通分量看成一个点)�
- 02-28强连通分量(缩点,tarjan)(无讲解)
- 02-28强连通分量(缩点)学习笔记 (updating)
- 02-28LightOJ1417 Forwarding Emails(强连通分量+缩点+记忆化搜索)
- 02-28POJ1523 Tarjan求割点以及删除割点之后强连通分量的数量
- 02-28模板【强连通分量缩点】
- 02-28图论算法-Tarjan模板 【缩点;割顶;双连通分量】
- 02-28强连通分量+缩点
- 02-28(转)Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)
- 02-28HDU 3861 The King’s Problem 最小路径覆盖(强连通分量缩点+二分图最大匹配)