强连通分量(tarjan算法)
来源:互联网 发布:老凤祥网络旗舰店 编辑:程序博客网 时间:2024/06/04 08:57
#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>#include<vector>#define max 110using namespace std;int par[max],in[max],out[max];int low[max],dnf[max],sta[max],ccount,tot,cnt;//ccount为强连通分量个数bool use[max];vector<int >g[max];int mmax(int a,int b){ int p; if(a>b) p=a; else p=b; return p;}void dfs(int index){ int i,p,k; low[index]=dnf[index]=++cnt; use[index]=1; sta[tot++]=index; p=(int)g[index].size(); for(i=0;i<p;i++) { k=g[index][i]; if(!dnf[k]) { dfs(k); if(low[index]>low[k]) low[index]=low[k]; } else if(use[k]) { if(low[index]>dnf[k]) low[index]=dnf[k]; } } if(low[index]==dnf[index]) { ccount++; while(1) { tot--; use[sta[tot]]=0; par[sta[tot]]=ccount; if(tot==0||sta[tot]==index) break; } } return ;}void targin(int n){ memset(use,0,sizeof(use)); memset(dnf,0,sizeof(dnf)); memset(low,0,sizeof(low)); memset(in,0,sizeof(in)); memset(out,0,sizeof(out)); cnt=0; ccount=0; tot=0; int i,s=0,j,q; int p,t; for(i=1;i<=n;i++) { if(!dnf[i]) dfs(i); }}
0 0
- 强连通分量(tarjan算法)
- tarjan算法求图中环(强连通分量)
- Tarjan算法(求强连通分量)
- tarjan算法模板(强连通分量)
- tarjan 算法(求强连通分量)
- 强连通分量 Tarjan算法
- 强连通分量 tarjan算法
- 强连通分量Tarjan算法
- Tarjan强连通分量算法
- 强连通分量Tarjan算法
- 强连通分量Tarjan算法
- 强连通分量 Tarjan算法
- 强连通分量-tarjan算法
- 强连通分量(Tarjan)
- 强连通分量的tarjan算法应用(一)
- 有向图的强连通分量(tarjan算法)
- POJ 2186 Popular Cows(强连通分量Tarjan算法)
- Tarjan算法求解强连通分量(SCC)
- hdu 2084数塔问题
- sizeof知多少
- 弹球小例子
- pox组件介绍
- Android 获取屏幕尺寸与密度
- 强连通分量(tarjan算法)
- 一分钟掌握Service生命周期
- smartfoxserver2x 与服务器通讯(二)
- jquery手机浮动导航
- 超轻量级DI容器框架Google Guice与Spring框架的区别教程详解及其demo代码片段分享
- 南宁打响救楼市第一枪:官方正式发文松绑限购
- 深拷贝+浅拷贝
- 最短路(Djisteka算法)模板
- java中的匿名内部类总结