关于双联通分量的存在条件的证明(对于算法进阶的补充)
其实还是晚上的思考
为什么晚上这么多思考啊(╯‵□′)╯︵┻━┻
还有我还花了一个上午,就证了这么一个SB东西(╯‵□′)╯︵┻━┻
点双存在条件
点双联通分量的定义:一个无向连通图中不存在割点即可。
一个无向联通图是点双,当且仅当满足以下条件之一:
- 图的顶点数不超过2
- 图中任意两点都存在于至少一个简单环中(但是不是说所有点在一个简单环),其中简单环指的是不自交的环,也就是我们通常画出来的环。
1条件很明显,不说了,2条件的话,充分性很好证明,\(x,y\)都同时包含在至少一个简单环中,则图中一定没有割点,是点双。
但是必要性吗。。。。
引理1:对于两个相邻的点双(共用一个割点),这两个边已经满足图中任意两点都包含在一个简单环中,从这两个点双各选一个点(除了割点),连一条边,可以证明,这个新形成点双也满足这个图中任意两点都包含在一个简单环中。
证明:
这样两个绿点加割点形成简单环,现在我们只需要证明,存在一条简单路径能从绿点走到蓝点再走到黑点就可以了。
随便选择一个蓝点到黑点的简单环,设蓝点为\(a\),黑点为\(b\),这样就存在一条路径:\(a->x_1->x_2->x_3->...->b、a->y_1->y_2->y_3->...->b\),首先如果蓝点就在路径上,直接存在,如果不在路径上。
首先考虑绿点到蓝点的一条路径,其不可能与两条路径有交点。如果其只和一个路径有交点,那么直接选择即可。
如果与两条路径都有交点,那么按图中选法即可(找到最早有交点的路径直接走路径即可)。
这样就证明啦QMQ
引理2(用来补充说明上面那个引理):两个点双最多共用一个割点。
证明:如果共用两个,这两个点必然不是割点,证毕。
然后就可以证明了,对于一个点双,建立一个生成树,不断加边,最后一定会成为一个点双的(如果不能成为点双,那么说明原本就不存在点双。)
边双存在条件
边双联通分量的定义:一个无向连通图中不存在桥即可。
一个无向联通图是点双,当且仅当满足这个条件:
图中任意一条边都存在于至少一个简单环中(但是不是说所有点在一个简单环),其中简单环指的是不自交的环,也就是我们通常画出来的环。
哇,这个简直SB,充分性和上面差不多,必要性的话。
你把这个边删掉,然后不影响边左右两点的连通性,说明存在一条其他路径,加上这条边即可构成简单环啊,简直SB。