ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

无向图的连通性相关

2021-10-11 20:35:26  阅读:194  来源: 互联网

标签:连通 连通性 割点 无向 桥边 端点 两个 相关 分量


无向图的割点和桥

\(\\\)

概念

对于\(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\)。

  • 如果这个连通块不与任何割点相连,那么这个连通块内需要两个出口

    首先可以钦定块内的任何一点作为出口,考虑该出口没了的情况,那么还需要另外一个点作为出口。

    这种情况下可以作为出口的点有\(C_n^2=\frac{n\times (n-1)}{2}\)种情况。

  • 如果这个连通块与一个割点相连,那么这个连通块内需要单独的一个出口。

    如果这个割点没了,那么这个连通块内的点没有其他点与块外的点相连。

    这种情况下可以作为出口的点有\(n\)种情况。

  • 如果这个连通块与两个及以上割点相连,那么这个连通块不需要出口

    如果其中一个割点没了,还可以通过其它的割点与块外的点相连。

    对答案没有贡献。

\(\\\)

[ZJOI2004]嗅探器

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

没调过……

\(\\\)

\(\\\)

无向图的双连通分量

\(\\\)

概念

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

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

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

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

\(\\\)

Tarjan算法

点双连通分量判定法则

  • 图的顶点数量不超过\(2\)。
  • 图中任意两点都同时包含在至少一个简单环中。

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

边双连通分量判定法则

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

\(\\\)

一些题目

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有