尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

tarjan 强连通分量、缩点、点双、割点、割边(桥)
📅 发布时间:2026/6/20 11:49:50

有向图

强连通分量、缩点

取 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]);
}

相关新闻

  • 2025年知名的长租公寓有哪些:权威榜单与精选解析
  • 如百钱百鸡问题,枚举法和穷举法有何不同
  • 2025年长租公寓排名:最新专业榜单与推荐

最新新闻

  • 2026年扬州全屋定制持证爱格授权门店合集 - 高定
  • 潍坊黄金回收实测避坑,六家老店哪家靠谱 - 余生黄金回收
  • Appium Inspector 实战指南:iOS自动化测试元素定位与脚本编写
  • 邵阳黄金回收测评:这6家店到底怎么选? - 余生黄金回收
  • 3分钟掌握BoxMOT:终极多目标追踪插件化解决方案
  • 2026年6月最新卡地亚中国官方售后服务地址客服热线网点电话 - 卡地亚服务中心

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号