news 2026/8/12 14:23:30

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/8/11 13:09:56

用VPS快速搭建个人博客原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个一键部署工具&#xff0c;用户只需选择博客主题&#xff08;技术、旅行、美食等&#xff09;和域名&#xff0c;工具即可自动在VPS上部署WordPress或静态网站生成器&#x…

作者头像 李华
网站建设 2026/8/12 11:26:34

5分钟搭建Ollama连接监控原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速开发一个最小可行的Ollama监控原型&#xff0c;功能包括&#xff1a;1. 简单的服务状态检查&#xff1b;2. 基本的错误报警&#xff1b;3. 状态可视化界面。使用Python Flask框…

作者头像 李华
网站建设 2026/8/12 11:53:56

15分钟快速验证:CUDA+cuDNN加速效果对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个即开即用的Web应用&#xff1a;1) 左侧显示原生CUDA实现的图像滤波代码 2) 右侧显示cuDNN优化版本 3) 中间实时摄像头输入&#xff0c;两侧并行显示处理帧率和显存占用。添…

作者头像 李华
网站建设 2026/8/12 11:26:35

比手动快10倍:自动化处理TLS证书错误

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个效率对比工具&#xff0c;展示处理x509: certificate signed by unknown authority错误的不同方法耗时&#xff1a;1) 传统手动排查流程 2) 使用本AI工具自动化处理。工具应…

作者头像 李华
网站建设 2026/8/12 11:49:43

用LittleFS快速构建物联网设备数据存储原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个物联网传感器数据采集系统的快速原型&#xff0c;要求&#xff1a;1.使用ESP32LittleFS存储传感器数据 2.实现循环存储和查询功能 3.支持通过WiFi读取存储数据 4.包含简单的…

作者头像 李华
网站建设 2026/8/12 12:46:19

传统排错vsAI辅助:解决Ollama错误效率对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个对比测试工具&#xff0c;模拟两种解决Ollama连接错误的场景&#xff1a;1. 传统手动排查流程&#xff1b;2. 使用AI自动诊断流程。工具应记录每种方法所需的时间步骤和成功…

作者头像 李华