当前位置: 首页 > news >正文

tarjan 强连通分量、缩点、点双、割点、割边(桥)

有向图

强连通分量、缩点

cmin(low[u], dfn[v])v 一定要在栈里。

弹栈时要将 u 也弹出。

int dfn[N], low[N], dfnp, st[N], sp, vis[N], bl[N], blp;
void tarjan(int u) {vis[st[++sp] = u] = 1;dfn[u] = low[u] = ++dfnp;for(int i = hed[u], v; v = e[i].v, i; i = e[i].nxt)if(!dfn[v]) tarjan(v), cmin(low[u], low[v]);else if(vis[v]) cmin(low[u], dfn[v]);if(dfn[u] == low[u]) {int x;blp++;do vis[x = st[sp--]] = 0, bl[x] = blp;while(x ^ u);}
}

无向图

点双、割点

cmin(low[u], dfn[v])v 不用看在不在栈里。

弹栈不用将 u 弹出。

int st[N], sp, dfn[N], low[N], dfnp, np, cut[N], rt;
vec<int> dcc[N];
void tarjan(int u) {st[++sp] = u;dfn[u] = low[u] = ++dfnp;if(!hed[u]) dcc[++np].eb(u);for(int i = hed[u], v, son = 0; v = e[i].v, i; i = e[i].nxt)if(!dfn[v]) {tarjan(v);cmin(low[u], low[v]);if(low[v] == dfn[u]) {if(++son > 1 || u != rt) cut[u] = 1;int x;np++;do dcc[np].eb(x = st[sp--]);while(x ^ v);dcc[np].eb(u);}} else cmin(low[u], dfn[v]);
}

割边(桥)

有重边的代码。

int brg[M << 1], dfn[N], low[N], dfnp;
void tarjan(int u, int eid) {dfn[u] = low[u] = ++dfnp;for(int i = hed[u], v; v = e[i].v, i; i = e[i].nxt)if(!dfn[v]) {tarjan(v, i ^ 1);cmin(low[u], low[v]);if(low[v] == dfn[v]) brg[i] = brg[i ^ 1] = 1;} else if(i != eid) cmin(low[u], dfn[v]);
}
http://www.jsqmd.com/news/53228/

相关文章:

  • 我踩坑后总结:企业微信客服API接入客服系统,90%的人都搞错了!
  • 香橙派上进行MQTT数据存储客户端开发(一)基本环境配置
  • GEO 优化价格大比拼,哪家最便宜?三大高性价比机构推荐
  • 2025年AI学习机哪个品牌好?热门品牌功能与效果全解析
  • 2025年知名的长租公寓有哪些:权威榜单与精选解析
  • 编程中的枚举法与数学上的穷举法有何区别?
  • 如百钱百鸡问题,枚举法和穷举法有何不同
  • 根本魔法语言数组 (一) (C语言)
  • 《程序员修炼之道:从小工到专家》阅读笔记5
  • Spring Cloud工程中使用Nacos配置中心的2种方式
  • 人工智能之数据分析 Matplotlib:第三章 基本属性
  • 那为什么go 就能用同步的写法,而且不用协程的情况下,实现异步编程,而且还不阻塞os线程
  • URL地址转base64
  • 2025年租房去哪里找房源:独家榜单与深度解析
  • C# 图片加载引发的内存溢出异常
  • 实用指南:LV.5 文件IO
  • CSS视图过渡入门指南:让多页面应用拥有丝滑动画
  • 《ROS1学习笔记8——自定义服务素材》
  • 实用指南:逻辑回归(Logistic Regression)
  • CTIP 与 3D-IC 堆栈热行为仿真实践
  • Mac 安装 4K Video Downloader v5.0.0.5303-1.dmg 方法(附安装包)
  • 浮点数定点表示(Q格式)
  • TPS的另外一层含义:绝对并发用户数 - BKY007
  • P10547 [THUPC 2024 决赛] 排列游戏
  • NeurlPS 2025!多伦多大学TIRE助力3D/4D 生成精准保留主体身份
  • 笔记——OI中求逆元的几种方式(不含数学知识的讲解)
  • 2025国内公关公司排名推荐(整合权威数据源):十大机构深度对比,专业分析与选择指南
  • SpringBoot集成LangChain4j快速开发AI应用(调用阿里云Api) - 实践
  • 中美大数据产业的十年分岔路 - 智慧园区
  • acme证书申请