tarjan模板(强联通分量)
2013-10-23 21:40
363 查看
void tarjan(int i) { int j; DFN[i]=LOW[i]=++Dindex; instack[i]=true; Stap[++Stop]=i; for (edge *e=V[i];e;e=e->next) { j=e->t; if (!DFN[j]) { tarjan(j); if (LOW[j]<LOW[i]) LOW[i]=LOW[j]; } else if (instack[j] && DFN[j]<LOW[i]) LOW[i]=DFN[j]; } if (DFN[i]==LOW[i]) { Bcnt++; do { j=Stap[Stop--]; instack[j]=false; Belong[j]=Bcnt; } while (j!=i); } } void solve() { int i; Stop=Bcnt=Dindex=0; memset(DFN,0,sizeof(DFN)); for (i=1;i<=N;i++) if (!DFN[i]) tarjan(i); }
相关文章推荐
- tarjan求强联通分量 模板
- Tarjan强联通分量【模板】
- poj 2942 Knights of the Round Table Tarjan求点双联通分量+黑白染色二分图判断
- hdu1269 移动城堡 联通分量 Tarjan
- POJ 3114 Countries in War(强联通分量+Tarjan)
- 连通分量模板:tarjan: 求割点 && 桥 && 缩点 && 强连通分量 && 双连通分量 && LCA(最近公共祖先)
- hdu1269迷宫城堡(tarjan求强连通分量模板)
- 边双联通分量小结+模板
- 点双联通分量模板
- tarjan 算法模板(边连通分量)
- HDU 1878(1Y) (判断欧拉回路是否存在 奇点个数为0 + 一个联通分量 *【模板】)
- 有向图强连通分量Tarjan模板
- zoj 1119 SPF (tarjan求割点的联通分量数)
- [HDOJ4738]Caocao's Bridges(双联通分量,割边,tarjan)
- hdu 4635 Strongly connected Kosaraju/Tarjan求强联通分量大小
- BZOJ 2438 杀人游戏 强联通分量tarjan缩点
- Tarjan强联通分量-洛谷P2746 [USACO5.3]校园网Network of Schools
- 洛谷P2860 [USACO06JAN]冗余路径Redundant Paths(tarjan求边双联通分量)
- [强联通分量_tarjan] 0725
- CodeForces 178B1 - Greedy Merchants tarjan求双联通分量+tarjan离线求最近公共祖先