模板,无向图强连通缩点,tarjan
2014-04-17 16:48
246 查看
int first[nMax],nxt[nMax],to[nMax],e; void addadge(int u,int v) { to[e]=v;nxt[e]=first[u];first[u]=e;e++; to[e]=u;nxt[e]=first[v];first[v]=e;e++; } int low[nMax],dfn[nMax],dep,belong[nMax],vis[nMax],st[nMax],top,cnt; void tarjan(int u,int E) { low[u] = dfn[u] = dep;dep++; vis[u] = 1; st[++top] = u; for(int i=first[u];i!=-1;i=nxt[i]) { if((E^1) == i) continue; if(!vis[to[i]]) { tarjan(to[i],i); low[u] = min(low[u],low[to[i]]); }else { low[u] = min(low[u],dfn[to[i]]); } } if(low[u] == dfn[u]){ do{ belong[st[top]] = cnt; }while(top && st[top--] != u); cnt ++; } } //重新建图啦 for(int i=0;i<m;i++) { if(belong[edge[i].l] != belong[edge[i].r]) addadge(belong[adge[i].l],belong[edge[i].r]); }
相关文章推荐
- POJ 3352--Road Construction【无向图增加最少的边成为边双连通图 && tarjan求ebc && 缩点构造缩点树】
- poj 3177 Redundant Paths 【无向图增加最少的边是图成为边—双连通】【tarjan求EBC + 缩点 统计度数为1的EBC】
- 连通分量模板:tarjan: 求割点 && 桥 && 缩点 && 强连通分量 && 双连通分量 && LCA(最近公共祖先)
- POJ 3177--Redundant Paths【无向图添加最少的边成为边双连通图 && tarjan求ebc && 缩点构造缩点树】
- 连通分量模板:tarjan: 求割点 && 桥 && 缩点 && 强连通分量 && 双连通分量 && LCA(近期公共祖先)
- POJ 3177--Redundant Paths【无向图增加最少的边成为边双连通图 && tarjan求ebc && 缩点构造缩点树】
- 有向图强连通分量Tarjan模板
- tarjan - SPFA - Luogu 3387【模板】缩点
- [POJ 3180] The Cow Prom Tarjan求强连通分量 模板题
- Network of Schools POJ - 1236 tarjan强连通分量缩点
- hdu1269迷宫城堡(tarjan求强连通分量模板)
- HDU-2767 Proving Equivalences(tarjan缩点 SCC题模板)
- Tarjan求强连通分量,缩点
- POJ 3114 Countries in War 强连通tarjan缩点后 跑最短路spfa
- Tarjan求强连通(缩点)
- The King’s Problem(tarjan求强连通分量缩点+匈牙利求有向无环图的最小路径覆盖)
- 计蒜客 受欢迎的蒜头(tarjan缩点构图模板)
- sdut 3262 有向图强连通分量缩点模板
- [BZOJ]1093: [ZJOI2007]最大半连通子图 Tarjan缩点+拓扑图DP
- hdu 4612 warm up 无向图求割边缩点,边连通图