Tarjan强连通分量
2016-07-17 21:19
344 查看
ACM模版
Tarjan强连通分量
/* * Tarjan 强连通分量 * INIT: vec[]为邻接表; stop, cnt, scnt置0; pre[]置-1; * CALL: for(i=0;i<n;++i)if(-1==pre[i])tarjan(i,n); */ const int V = 10010; int stop, cnt, scnt; int id[V], pre[V], low[V], s[V]; vector<int> vec[V]; void tarjan(int v, int n) // vertex: 0 ~ n-1 { int t, minc = low[v] = pre[v] = cnt++; vector<int>::iterator pv; s[stop++] = v; for (pv = vec[v].begin(); pv != vec[v].end(); ++pv) { if (-1 == pre[*pv]) { tarjan(*pv, n); } if (low[*pv] < minc) { minc = low[*pv]; } } if (minc < low[v]) { low[v] = minc; return ; } do { id[t = s[--stop]] = scnt; low[t] = n; } while (t != v); ++scnt; // 强连通分量的个数 return ; }
相关文章推荐
- HDU1289 Tarjan-模板题
- UVA 11770 Lighting Away
- POJ2553 The Bottom of a Graph Tarjan 矩阵 pascal 解题报告
- POJ3180 The Cow Prom Tarjan 链接表 pascal 解题报告
- POJ1986 Distance Queries LCA pascal 解题报告
- tarjan
- [BZOJ1179][APIO2009][Tarjan][拓扑排序][递推]Atm
- [BZOJ2330][SCOI2011][拓扑排序][强连通分量][Tarjan]Candy
- [BZOJ1093][ZJOI2007][Tarjan][DP]最大半联通子图
- 图论算法(6) --- Tarjan算法求强连通分量
- 图论算法(6)(更新版) --- Tarjan算法求强连通分量
- [BZOJ1051/POJ2186]Popular Cows
- POJ2186
- POJ3114 Country in Wars Tarjan+Dij
- tarjan求割点
- poj 3352 双连通分量
- hdu 4738 边双连通&桥,有重边情况
- 有向图强连通分量 Tarjan算法
- BZOJ 1924所驼门王的宝藏
- POJ1236Network of Schools(tarjan 算法)