news 2026/4/15 13:17:06

Tarjan算法图论全家桶系列--割边(桥)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Tarjan算法图论全家桶系列--割边(桥)

割边定义

在无向图G=(V,E)中,如果一条边e满足:删除e后,图的连通分量数量增加,则称e为割边(Bridge)。

重要性质

  • 割边一定是树边(在DFS生成树中的边)
  • 有重边(多重边)的边不可能是割边
  • 割边对应的两个端点中,至少有一个是割点(除非是悬挂边)

Tarjan算法求割边

1. 算法核心思想

Tarjan算法基于深度优先搜索(DFS),与求割点的算法类似,但判断条件有所不同。核心仍然是两个数组:

  • dfn[u]:节点u的DFS访问顺序(时间戳)
  • low[u]:从u出发,不经过DFS树中的父节点,能到达的最小dfn值

2. 判断割边的条件

对于一条树边(u, v)(其中u是v的父节点),如果满足:
low[v] > dfn[u]
那么(u, v)是一条割边。

解释

  • low[v]表示从v出发(不经过v→u这条边)能到达的最小时间戳
  • low[v] > dfn[u]意味着v及其后代无法通过任何非树边到达u或u的祖先
  • 因此,如果删除边(u, v),v所在的子图将与图的其余部分完全断开

模板

说明:Run(int _n,vector<int> adj[])传入总点数nvector<int>[]邻接表adj,运行tarjan求割边。vector<pair<int,int>> Get()获取所有割边

template<intN>structCut_edge{//不含重边constvector<int>*adj;vector<pair<int,int>>bridge;intdfn[N],low[N];intclk;voiddfs(intu,intfather){dfn[u]=low[u]=++clk;for(intto:adj[u]){if(to==father)continue;//不能走回父亲的边if(dfn[to]==0){dfs(to,u);low[u]=min(low[u],low[to]);if(low[to]>dfn[u])bridge.push_back({u,to});}elselow[u]=min(low[u],dfn[to]);}}voidRun(int_n,vector<int>adj[]){this->adj=adj;clk=0;bridge.clear();fill(dfn,dfn+5+_n,0);fill(low,low+5+_n,0);for(inti=1;i<=_n;++i)if(dfn[i]==0)dfs(i,-1);}vector<pair<int,int>>Get(){returnbridge;}};constintmaxn=2*1e5+20;Cut_edge<maxn>T;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 20:28:35

XUnity翻译:AI如何革新多语言游戏开发流程

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个基于XUnity框架的AI翻译插件&#xff0c;能够自动扫描游戏项目中的文本资源&#xff0c;调用多语言API进行高质量翻译&#xff0c;并保持原有文本格式和上下文语境。要求支…

作者头像 李华
网站建设 2026/4/6 16:06:06

Spacedesk在远程办公中的5个创新应用场景

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个展示Spacedesk应用场景的演示项目&#xff0c;包含以下案例&#xff1a;1. 设计师使用平板作为电脑绘图板&#xff1b;2. 教师在教室用手机控制讲台电脑&#xff1b;3. IT支…

作者头像 李华
网站建设 2026/4/13 21:57:16

利用大规模生物活性挖掘,计算识别针对癌基因驱动蛋白 EGFR、BRAF 与 CDK4 的高亲和力抑制剂

通过化学信息学方法,对靶向 BRAF V600E 和 EGFR 的新颖化学骨架进行体外筛选。 摘要 背景:精准癌症治疗需要小分子抑制剂与致瘤蛋白靶点之间的精确匹配。 方法:我们使用 Python 及 ChEMBL 数据库 API 开发了一套计算流程,系统性地筛选针对 EGFR、BRAF 与 CDK4 的高亲和力配…

作者头像 李华
网站建设 2026/4/8 0:49:17

Ubuntu服务器实战:从零搭建高可用Web服务集群

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个Ubuntu服务器集群管理工具&#xff0c;功能包括&#xff1a;1. 自动化部署LAMP/LEMP环境 2. 配置Nginx负载均衡 3. 设置MySQL主从复制 4. 监控各节点状态 5. 提供一键扩展/…

作者头像 李华
网站建设 2026/4/8 16:33:43

6、深入探索 Mac 终端:高级定制与文件系统

深入探索 Mac 终端:高级定制与文件系统 在使用 Mac 电脑时,终端是一个功能强大的工具,它能让你以命令行的方式与系统进行交互,实现比图形界面更强大的操作。本文将详细介绍终端高级定制、别名创建、处理无响应终端以及探索文件系统等相关内容。 1. 高级 Shell 定制 终端…

作者头像 李华
网站建设 2026/4/12 21:58:15

智能体开发在电商推荐系统中的应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个电商推荐系统的AI智能体&#xff0c;能够根据用户历史行为、实时浏览数据和偏好&#xff0c;动态生成个性化商品推荐。功能包括&#xff1a;1. 用户画像分析&#xff1b;2.…

作者头像 李华