Tarjan学习笔记(待修)
Tarjan 算法,研究图的连通性。(以下按照算阶上的顺序整理)
Tarjan 算法与无向图连通性
割点
对于给定无向连通图,删除其中一个节点以及所有与其关联的边之后,图不再连通,则称此节点为无向图的割点。
割边(桥)
对于给定无向连通图,删除其中一条边,图不再连通,则称此边为无向图的割边(桥)。
追溯值
用 low
数组储存, low[x]
为搜索树中以 x
为根的子树中的节点和通过一条不在搜索树上的边可以到达以 x
为根的子树的节点的点的时间戳的最小值。
Tarjan求割边
割点判定法则:对于 x
在搜索树上的一个子节点 y
,存在 dfn[x]<low[y]
,那么 (x,y)
为图的一条割边。
void tarjan(int x,int las)
{
dfn[x]=low[x]=++now;
for(int i=lk[x];i;i=nxt[i])
{
int y=to[i];
if(!dfn[y])
{
tarjan(y,i^1);
low[x]=min(low[x],low[y]);
if(low[y]>dfn[x])
{
ans[++z]={min(x,y),max(x,y)};//存割边
}
}
else if(i!=las)low[x]=min(low[x],dfn[y]);
}
}
Tarjan 求割点
割点判定法则:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】