Tarjan求图的连通性总结
来源:互联网 发布:java 请求webservice 编辑:程序博客网 时间:2024/05/19 10:37
有向图的Tarjan&缩点void tarjan(int x){ //Tarjan int y = 0; dfn[x]=low[x]=++dindex; instack[x]=true; stap[++stop]=x; for (int i=0; i<e[x].size(); i++) { y=e[x][i]; if (!dfn[y]) { tarjan(y); if (low[y]<low[x]) { low[x]=low[y]; } } else if (instack[y]&&dfn[y]<low[x]){ low[x]=dfn[y]; } } if (dfn[x]==low[x]) { cnt++; while (y!=x) { y=stap[stop--]; instack[y]=false; belong[y]=cnt; } } } for (int i=1; i<=n; i++) { //求强连通分量 if (!dfn[i]) { tarjan(i); } } for (int i=1; i<=n; i++) { int size=e[i].size(); for (int j=0; j<size; j++) { if (belong[i]!=belong[e[i][j]]) { outdeg[belong[i]]++; indeg[belong[e[i][j]]]++; } } } int sumout=0,sumin=0; for (int i=1; i<=cnt; i++) { if (outdeg[i]==0) { sumout++; } if (indeg[i]==0) { sumin++; } }
无向图的Tarjanvoid tarjan_addedge(int u,int father)//Tarjan求无向图的割边{ int i,v; low[u]=dfn[u]=index++; for(i=head[u];i!=-1;i=edge[i].next) { v=edge[i].to; if(v==father)continue; if(dfn[v]==-1) { tarjan(v,u); low[u]=low[u]>low[v]?low[v]:low[u]; if(low[v]>dfn[u])//桥 { bridge[cnt++]=i; } } else low[u]=low[u]>dfn[v]?dfn[v]:low[u]; }}来自 <http://acm.hust.edu.cn/vjudge/contest/source/6487492> void Tarjan_Point(int x)//Tarjan求无向图的割点{ id++; low[x] = dfn[x] = id; vis[x] = 1; for(int i = head[x]; i!=-1; i=edge[i].next) { int y=edge[i].v; if(!vis[y]) { Tarjan(y); low[x] = min(low[x],low[y]); if(low[y] >= dfn[x] && x != 1) { num1[x]++; } else if(x == 1) numson++; } else low[x] = min(low[x],dfn[y]); }}来自 <http://acm.hust.edu.cn/vjudge/contest/source/6501942> if (low[v] != low[i])//无向图判断是不是一个双连通分量{ cnt[low[i]] ++;}来自 <http://acm.hust.edu.cn/vjudge/contest/source/6491720>
0 0
- Tarjan求图的连通性总结
- POJ1236图的连通性Tarjan
- 图的连通性tarjan模板
- 图的连通性问题&tarjan求强连通分量、割点、桥
- 图的连通性-tarjan模板(2)
- 图的连通性算法(Tarjan)
- 图的连通性问题之tarjan算法
- 图的连通性强弱判断(tarjan+缩点)
- 连通性问题 之 Tarjan算法求强连通分量
- 利用矩阵的n次方求图的连通性
- HDU 3072 //图的强连通性,缩点后求树形图 //TARJAN算法
- 无向图和有向图关于连通性的tarjan算法
- 图的连通性小结
- 图的连通性
- 判断图的连通性
- 数据结构---图的连通性
- 【图的连通性】poj2117Electricity
- 图的连通性判断
- 即时通讯制作过程中需要注意的细节
- 解决 multiple definition of 问题
- c++学习笔记(九):C++日期和时间
- 使用 Android Studio 检测内存泄漏与解决内存泄漏问题
- 2016夏季练习——单调队列
- Tarjan求图的连通性总结
- android中Activity的生命周期及应用
- 自学Python系列之一:Win7下Eclipse + PyDev配置Python + PyQt4开发环境
- spring context 初始化两次导致dubbo端口被占用
- 史上最全的贝塞尔曲线(Bezier)全解(一):初识贝塞尔曲线
- python import module -- cannot find reference "XXX" in __init.py__
- SDWebimage加载图片
- JSP中EL表达式的比较符号、字符串比较
- redux —— 入门实例 TodoList