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 求割点

割点判定法则:

posted @   baiguifan  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示