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

【学习笔记】tarjan 算法大杂烩

前置知识

啊嘿嘿,第三次学习 tarjan 终于是给我学明白了。
先来看一下 dfs 树上的三种边:

  • 树边:从父亲连向儿子的边
  • 返祖边:从儿子连向祖先的边
  • 横叉边:除了前两种边之外的边

tarjan 算法中常用的两个数组:

  • \(dfn_i\):表示 \(i\) 的时间戳,即第几个被遍历到
  • \(low_i\):表示 \(i\) 只经过最多一条返祖边到达的最小时间戳

下面正片开始!

有向图的 tarjan 算法

求强连通分量

这个好像是 tarjan 算法在有向图中的唯一常见应用吧~

强连通定义

对于有向图中的一个联通子图 \(G(V,E)\),若子图中的任意两点之间都是可以到达的,则称 \(G(V,E)\) 是一个强连通分量

实现

对着代码理解吧~
初始化:dfn[u] = low[u] = ++tim 显然一个点不经过任何边可以到达的最小时间戳是他自己

if(!dfn[v]){		tarjan(v);low[u] = min(low[u], low[v]);
}
else if(in[v]) low[u] = min(low[u], dfn[v]);

如果当前点的时间戳没有被算过就说明是树边,否则就是非树边。
对于一条非树边只能用 \(v\)\(dfn\) 去更新当前的 $low#,否则可以用 \(low\) 来更新当前点的 \(low#\)
注意,有向图中的 dfs 树可能会出现横叉边的情况,而横叉边是不可以用来更新 \(low\) 的,所以要特判(用是否在栈内,即是否属于当前子树来判断)。

http://www.jsqmd.com/news/25468/

相关文章:

  • 2025年保安亭厂家推荐排行榜
  • 【每日一面】对 Promise.race 的理解
  • 2025年10月淡化痘印产品推荐榜:权威对比与实测排行
  • 问大模型CAN的co-attention
  • 2025年10月美白精华产品推荐榜:温和多通路对比评测
  • 2025年10月美白精华产品推荐榜:口碑与成分深度评测
  • 在AI技术唾手可得的时代,挖掘新需求成为制胜关键——某知名1位量化AI框架需求探索
  • 2025 年地漏厂家最新推荐榜:涵盖铜 / 防臭 / 抗菌 / 磁悬浮 / 防溢水等类型,精选实力企业助力消费者精准选购
  • PBS, 以太坊的棘刺雕猴 - 教程
  • 2025年10月网上兼职赚钱正规平台推荐:知名平台榜单全收录
  • 2025年定制啤酒设备制造厂权威推荐:德国啤酒生产设备定制厂家/德国精酿设备厂家供应商/啤酒设备企业/啤酒厂设备优质厂家精选
  • 2025年10月网上兼职赚钱正规平台推荐:市场报告与对比列表
  • 【转载】孪生网络(Siamese Network)
  • nvlink和nvswitch的区别
  • 2025年10月敏感肌产品推荐榜:口碑与功效双排行
  • 2025年10月敏感肌产品推荐榜:持证美白舒缓功效全记录
  • 别再用手绘架构图了!ArchiMate才是架构师的标准乐高
  • 2025 年幕墙灯饰画,灯饰画设计,背胶灯饰画厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • 基于MATLAB的DUET算法实现欠定盲源分离
  • 2025 年墙体灯饰画,led 灯饰画,灯饰画定制,大型灯饰画 厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读!
  • 2025 年商场灯饰画,户外灯饰画,天幕灯饰画厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • 本地客户端ssh连接远程服务器,远程服务器的ssh进程都做了哪些工作?
  • goldengate 12.x安装(oracle)
  • 数据采集故障频发,中控技术靠SeaTunnel实现日均TB级核心数据同步任务0出错
  • 2025年10月祛斑产品推荐榜:五款单品横向对比
  • yolo简单使用
  • 穿透式页面和菜单页面同时共存的解决方案
  • 2025年管母线厂家权威推荐:绝缘铝管母线/管型母线/全屏蔽绝缘铜管母线源头厂家精选
  • 2025年10月祛斑产品推荐榜:权威评测五强对比
  • 2025年10月精华液对比榜:从传明酸到多肽的真实排行