其他分享
首页 > 其他分享> > 无向图的连通性相关

无向图的连通性相关

作者:互联网

无向图的割点和桥

\(\\\)

概念

对于\(x\epsilon V\),从图中删去节点\(x\)以及所有与\(x\)关联的边后,\(G\)分裂成两个或两个以上不相连的子图,则称\(x\)为\(G\)的割点。

若对于\(e\epsilon E\),从图中删去边\(e\)之后,\(G\)分裂成两个不相连的子图,则称\(e\)为\(G\)的桥或割边。

一般无向图(不一定联通)的“割点”和“桥”就是它的各个连通块的“割点”和“桥”。

\(\\\)

tarjan算法

以\(O(v+e)\)的时间复杂度求出无向图的割点和桥以及双连通分量。

割边判定法则

无向边\((x,y)\)是桥,当且仅当搜索树上存在\(x\)的一个子节点\(y\),满足\(dfn[x]<low[y]\)。

割点判定法则

若\(x\)不是搜索树的根节点,则\(x\)是割点当且仅当搜索树上存在\(x\)的一个子节点\(y\)满足\(dfn[x]\le low[y]\)

若\(x\)是搜索树的根节点,则存在至少两个子节点\(y_1,y_2\)满足上述条件。

\(\\\)

一些题目

矿场搭建

通过手模一些样例可以发现,实际上就是求出割点后对于不同的连通块分类讨论。

记当前连通块内的点的个数为\(n\)。

\(\\\)

[ZJOI2004]嗅探器

一个结论,如果存在这样一个点,那么这个点一定是割点,并且两个中心服务器位于与这个割点相连的不同两个连通块中。

没调过……

\(\\\)

\(\\\)

无向图的双连通分量

\(\\\)

概念

若一张连通图不存在割点,则称它为“点双连通图”。

若一张连通图不存在割边,则称它为“边双连通图”。

点双连通分量(v-DCC)是指这张无向连通图中不存在包含它且比它更大的点双连通子图。

边双连通分量(e-DCC)是指这张无向连通图中不存在包含它且比它更大的边双连通子图。

\(\\\)

Tarjan算法

点双连通分量判定法则

满足两个条件的其中一个即可。

边双连通分量判定法则

图中任意一条边都包含在至少一个简单环中。

\(\\\)

一些题目

Network

首先求出原图中所有的边双连通分量,然后对于所有的边双连通分量缩点,建出新的缩点图。

此时缩点图中所有的边就是原图所有的桥边。

后面所有的加边操作都在缩点图上进行。

如果这条边的两个端点在一个v-dcc里,那么这条边既不会增加桥边,又不会减少桥边,可以忽略。

这条边最多只会与v-dcc里的边形成简单环,然而v-dcc里面的边已经不是桥边了,故它自己不会成为桥边,也不会减少桥边。

如果这条边的两个端点在两个v-dcc里,那么缩点图上两个端点之间的边都不再是桥边。

这条边会与两个端点之间的边形成简单环,那么这些边就都不是桥边了。

此时,并不需要实际把这条边建出来。

考虑如果需要把这条边建出来的话,一定是这条边在之后可能形成桥边,或者是让之后加的边成为桥边。首先,这条边已经与两个端点之间的路径形成了一个简单环,它自己永远不可能成为桥边了。同理,之后添加的边也一定会与它两个端点之间的路径形成简单环,也不可能成为桥边。

将两个端点之间的路径看成这两个端点到\(lca\)的路径拼起来。也就是说,预先处理出\(lca\),将\(x\)到\(lca\)路径上所有的桥边都改为非桥边,将\(y\)到\(lca\)路径上所有的桥边也都改为非桥边。

code

\(\\\)

Knights of the Round Table

咕咕咕

标签:连通,连通性,割点,无向,桥边,端点,两个,相关,分量
来源: https://www.cnblogs.com/Rapunzel/p/15394844.html