博客
关于我
【模板】有向图tarjan
阅读量:171 次
发布时间:2019-02-28

本文共 714 字,大约阅读时间需要 2 分钟。

#include 
using namespace std;const int N = 10005, M = 50005;vector
son[N];int dfn[N], low[N], num, s[N], out[N], top, cnt;int scc[N];int sz[N], n, m;void tarjan(int u) { low[u] = dfn[u] = ++num; s[++top] = u; for (int i = 0; i < son[u].size(); ++i) { if (dfn[son[u][i]] == 0) { tarjan(son[u][i]); low[u] = min(low[u], low[son[u][i]]); } else if (dfn[son[u][i]] < dfn[u]) { low[u] = min(low[u], dfn[son[u][i]]); } } if (low[u] == dfn[u]) { ++cnt; scc[cnt] = top; sz[cnt] = top - s[0] + 1; for (int v = s[top]; top-- < s[0]; v = s[--top]) { out[v] = cnt; sz[cnt]--; } }}

转载地址:http://iawn.baihongyu.com/

你可能感兴趣的文章
python getattrribute_Python学习——面向对象高级之反射
查看>>
Python进阶语法:字典推导式
查看>>
python gil_Python中GIL的使用详解
查看>>
python glob.glob使用
查看>>
python glob的安装和使用
查看>>
Python google drive API 下载,文件在哪里?
查看>>
Python GPS 模块:读取最新的 GPS 数据
查看>>
python grpc入门
查看>>
python gRPC测试helloworld
查看>>
python list,str的拼接与转换
查看>>
python matplotlib简单使用
查看>>
python os.system
查看>>
Python os.system执行多条语句,os.system的返回值以及与os.popen的区别
查看>>
Python os和sys模块
查看>>
python os文件/目录
查看>>
Python Package 之 Faker(随机姓名、电话)
查看>>
Python Panda TIME 系列重新采样
查看>>
python pandas TimeStamps到夏令时的本地时间字符串
查看>>
Python pandas 数据清洗与数据绘图实战
查看>>
Python Pandas 用顶行替换标题
查看>>