tarjan求强连通分量
来源:互联网 发布:windows toolkit 2.6 编辑:程序博客网 时间:2024/04/29 13:57
const int maxn=100050;int inStack[maxn],dfn[maxn],low[maxn],Index;int inComponent[maxn],componentDegree[maxn],componentNum=0;vector<int>edge[maxn],component[maxn];stack<int>Stack;
memset(low,0,sizeof(low));memset(dfn,0,sizeof(dfn));
void tarjan(int i){ int j; dfn[i]=low[i]=Index++;//dfn为当前访问次序,low为所能追溯到的最早次序 inStack[i]=true; Stack.push(i); for(int e=0;e<edge[i].size();e++){ j=edge[i][e]; if(dfn[j]==0){//如果j没有访问过 tarjan(j); low[i]=min(low[i],low[j]); } else if(inStack[j])//如果j已经在栈中,则更新low值 low[i]=min(low[i],dfn[j]); } if(dfn[i]==low[i]){//当前访问次序与最早次序相同说明形成了强连通分量 componentNum++;//记录强连通分量个数 do{ j=Stack.top(); Stack.pop(); inStack[j]=false; component[componentNum].push_back(j); inComponent[j]=componentNum;//记录j属于哪个强连通分量 } while(j!=i); }}
阅读全文
0 0
- tarjan求强连通分量
- tarjan 求强连通分量
- tarjan求强连通分量
- Tarjan求强连通分量
- tarjan求强连通分量
- Tarjan求强连通分量
- 上白泽慧音 题解 ---- tarjan求强连通分量
- Tarjan算法求强连通分量
- 求强连通分量的Tarjan算法
- POJ 1236 (Tarjan求强连通分量)
- tarjan求强连通分量模板
- HDU 3836 tarjan求强连通分量
- Tarjan算法-求强连通分量
- tarjan 求强连通分量模板
- tarjan算法求强连通分量
- tarjan算法求强连通分量
- 求强连通分量之tarjan算法
- Tarjan算法(求强连通分量)
- JVM参数配置大全
- Android自定义基础-Color
- UVA1395-Slim Span(最小生成树Kruskal、并查集)
- Failed to install the hcmon driver
- 计算几何-判断两线段是否相交(模板)
- tarjan求强连通分量
- 关于C++中的类型转换(显式转换)
- 常见的文本压缩算法
- 机器学习算法(一)-决策树
- Python数据挖掘实例(实时更新)
- 中国的独特性·《论中国》·一
- 纯干货:CSS你必须要知道的知识 前端必备
- WCMS 和 CCMS 傻傻分不清楚 —— CMS 家族大解密
- 正则表达式