Tarjan算法求BCC(无向图连通块、割边、割点)
来源:互联网 发布:mac系统符号对应按键 编辑:程序博客网 时间:2024/05/17 09:08
http://www.byvoid.com/zhs/blog/biconnect
http://blog.csdn.net/shiqi_614/article/details/7833628
#include <stack>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;const int N = 2e3+5;const int M = 1e4+5;struct Vertex{ int head;}V[N];struct Edge{ int v,next;}E[M];int top,bcc,id,dfn[N],low[N],belong[N],sub[N];bool in[N],cut_p[N],cut_e[M];stack<int> S;void init(){ top = 0; memset(V,-1,sizeof(V));}void add_edge(int u,int v){ E[top].v = v; E[top].next = V[u].head; V[u].head = top++;}void tarjan(int pre,int u){ dfn[u] = low[u] = ++id; int cnt = 0; S.push(u); for(int i=V[u].head;~i;i=E[i].next) { int v = E[i].v; if(v == pre) continue; if(!dfn[v]) { ++cnt; tarjan(u,v); low[u] = min(low[u],low[v]); if(u!=pre && dfn[u]<=low[v]) { cut_p[u] = true; sub[u]++; } if(dfn[u] < low[v]) cut_e[i] = true; } else low[u] = min(low[u],dfn[v]); } if(dfn[u] == low[u]) { int v; do { v = S.top(); S.pop(); belong[v] = bcc; }while(u != v); bcc++; } if(u==pre && cnt>1) { cut_p[u] = true; sub[u] = cnt-1; }}void get_bcc_cutp_cute(int n){ bcc = id = 0; memset(cut_p,false,sizeof(cut_p)); memset(cut_e,false,sizeof(cut_e)); memset(dfn,0,sizeof(dfn)); memset(sub,0,sizeof(sub)); for(int i=0;i<n;i++) if(!dfn[i]) tarjan(i,i);}
- Tarjan算法求BCC(无向图连通块、割边、割点)
- 用Tarjan算法求无向连通图割点&&割边
- POJ1523.SPF——无向图的割点,并求连通分支数(tarjan算法)
- poj1523—SPF(tarjan算法求无向图中所有的割点)
- 无向图 点连通tarjan算法 求割点 + 求BCC以及BCC里面的点 + 求去掉每个点后图中BCC数目 【总结】
- 无向图 点连通tarjan算法 求割点 + 求BCC以及BCC里面的点 + 求去掉每个点后图中BCC数目 【总结】
- 无向连通图的割点与割边
- 求无向连通图的割点和割边/桥
- 无向图中的tarjan 算法及其割点、割边
- Tarjan求无向图桥和割点
- 求无向连通图的割点
- 求无向连通图的割点
- 求无向连通图的割点(图论)
- 求无向连通图的割点
- tarjan算法--求无向图的割点和桥
- tarjan算法--求无向图的割点和桥
- Tarjan算法--求无向图的割点和桥
- 无向连通图的割点,割边(桥),双连通分量。
- 浅析测试不同种类 iOS 系统的兼容性
- 线程同步与异步套接字
- (总结)Linux下设置SSH Server保持长时间连接
- linux内核设计与实现笔记之第四章进程调度
- 粒子滤波通俗讲解
- Tarjan算法求BCC(无向图连通块、割边、割点)
- dll动态链接库使用过程
- [交互式SVG组件]Isometric projection
- java.lang.OutOfMemoryError: bitmap size exceeds VM budget
- Putty的颜色设置
- javascript ActiveXObject javascript取得机器名,用户名,读写注册表,启动应用程序
- cygwin完全安装步骤方法(组图)
- 使用application统计在线用户数
- FORM TEXT_ITEM内容左右靠齐