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

强连通分量与2SAT

如果有向图 G 的一个导出子图中的各个点两两可达,且满足其为极大导出子图,则这个导出子图是一个强连通分量。

其求解可以采取 tajan 算法。
从任意一个点进入搜索,访问的过程会形成一个搜索树,树上一共有四种边:

  • 树边:当前结点 \(u\) 连向一个未访问过的结点 \(v\),将递归到 \(v\) 继续搜索。
  • 返祖边:当前结点 \(u\) 连向一个祖先结点 \(v\)\(u\) 可以通过这条边返祖,形成强连通分量。
  • 前向边:当前结点 \(u\) 连向一个已经访问过的(否则为树边)后代结点 \(v\),如果经由 \(v\) 能访问到比 \(u\) 更早的结点,那么 \(u\) 可以通过 \(v\) 返祖,形成强连通分量。
  • 横叉边:当前结点 \(u\) 连向一个已经访问过的非祖先非后代结点 \(v\),如果经由 \(v\) 能访问到比 \(lca_{uv}\) 更早的结点,那么 \(u\) 可以通过 \(v\) 返祖,形成强连通分量。

对于树边,直接递归 DFS 即可。对于其他三类,如果他们能访问到的最高结点在根到 \(u\) 的路径上,则更新 \(u\) 能访问的最高结点。

可以发现,需要有一个办法方便地记录各个结点能访问的最高的结点,并且能够比较其距离根的距离。
我们可以用一个数组 dfn 为各个结点打上时间戳,再用一个数组 low 记录各个结点能访问的最高的节点。
当点 \(u\) 能够去到一个去过的点 \(v\),而 \(low_v < low_u\) 时,\(u\) 能够通过 \(v\) 去到一个更高的结点。但是这里有一个问题,如果 \(e_{u \rightarrow v}\) 是一条横叉边,则虽然 \(low_v\) 比较小,但是并不一定能通过 \(v\) 回到 \(u\) 的祖先,此时需要确认 \(low_v\)\(u\) 的祖先。
具体操作为可以再开一个栈,每访问一个结点,将其压入栈,再开一个数组,标记栈中元素。如果发现当前点无法再返回到更高的点了,那么这个点以下的所有点都无法访问到更高的点,需要依次出栈。
当发现返祖边、前向边、横叉边时,检查一下对方点是不是在栈内,也即能否返回到比 \(u\) 的祖先。

void dfs(int node) {low[node] = dfn[node] = ++ts;ins[node] = true, sk.push(node);for (int nxt : g[node]) {if (!dfn[nxt]) dfs(nxt);if (ins[nxt]) low[node] = min(low[node], low[nxt]);}if (low[node] == dfn[node]) {++scc;while (true) {int now = sk.top();ins[now] = false, sk.pop();bel[now] = scc, sz[scc]++;if (now == node) break;}}
}
http://www.gsyq.cn/news/1454630.html

相关文章:

  • 创新HDRI到立方体贴图转换工具:浏览器端一键式环境贴图生成解决方案
  • Flink零基础入门,一篇吃透Flink核心概念+本地环境搭建+首个实战程序
  • 四川高校科技成果转化如何避坑?从技术评估到交易撮合的深度解构
  • 2026年PDF转Word免费详细教程:无需注册的在线工具和小程序推荐 - AI测评专家
  • 2026 南京钻石回收怎么选?梳理靠谱钻石回收渠道 - 薛定谔的梨花猫
  • Windows 11系统优化终极指南:用开源工具Win11Debloat重获清爽体验
  • 海外直播拍卖订单履约难点:跨境链路协同与流程优化
  • 用剪映做短视频,别死磕基础操作,选对工具和素材,真的能少走 90% 的弯路
  • 干货合集:2026年最值得信赖的专业AI论文平台
  • Python抓取抖音评论的3种方案(2026版)
  • 私有化音视频系统/视频高清直播点播EasyDSS重塑企业视频门户新生态
  • 企业级项目管理系统Leantime的生产环境部署架构设计
  • 建议收藏|2026年必备一键生成论文工具榜单,免费生成高质初稿无忧
  • 抗老用什么品牌的护肤品 认准这5款精华,抗皱淡纹超给力 - 全网最美
  • 2026 海南万宁财税公司TOP5排行榜单,代办注册公司代理记账靠谱机构避坑指南 - 资讯速览
  • 工业液位优选 国内磁翻板液位计十大品牌盘点 - 仪表人叶工
  • 2026年房地产、物业及园区主数据管理平台,各行业选型推荐全攻略 - 品牌2026
  • 淮安喜盈门搬家保洁服务:清江浦专业的家具拆装公司推荐几家 - LYL仔仔
  • 2026粮食烘干机厂家口碑排名:基于430+烘干中心和2860+台设备保有量的真实用户评价 - 博客万
  • 绍兴黄金回收不怕跑空!最新营业门店全收录,地址电话一次收齐 - 商业快讯早知道
  • C# 在 VisionPro 机器视觉中的图形绘制实战详解
  • WSL 是什么
  • 天猫超市卡怎么回收?2026最新攻略:线上/二手/熟人全对比 - 可可收公众号
  • 魔高一尺道高一丈
  • 岳阳电磁铁采购成本优化指南:同样预算下如何选到最划算的厂家 - 优质企业观察收录
  • Alphabet计划募资800亿美元,全力押注AI基础设施建设
  • 2026年嘉兴AI搜索优化与短视频全案运营:制造业获客方案对照拆解 - 企业名录优选推荐
  • MATLAB实现LFM信号脉冲压缩:匹配滤波仿真脚本与性能分析
  • 告别Oracle官网下载烦恼:用Homebrew在Mac上一行命令搞定JDK 21安装与切换
  • PyCharm配置与爬虫入门指南