稳定婚姻

主要是讲一下tarjan算法的正确性

我们的连边方案是对每一对已经有了的婚姻,从女方向男方连边,然后对于交往过的关系,从男方向女方连边

分析题意不难发现,如果某一对夫妻处于一个环中,那么这对婚姻关系就是不稳定的

证明一下,如果说一对夫妻不在某个环中但还是不稳定的,说明存在一条合法的路径,即\(B_i\)\(G_j\),然后是\(B_j\)\(G_k\),这么一直下去。在某一时刻不可能会存在男方找不到的情况,因为如果存在这种情况的话就与不稳定矛盾了。那么什么时候会停止呢?当某次女生是\(G_i\)的时候就会停止了,因为只要女生不是\(G_i\),就说明男生不是\(B_i\),根据我们前面的分析,男生就一定会找另一个女生而且一定找得到,由于点数有限,所以最终一定会以\(G_i\)为终点,也就找到了环

从环这里已经可以看出来是SCC了(所以以后看到环,可以往SCC上面想),我们来简单说明一下

首先,如果一对夫妻在同一SCC里面,那么这对夫妻一定处于一个环中(SCC中任意两个点一定都在一个环中,因为可以从一个点走到另一个点,然后从另一个点又走到这个点,就形成了一个环),也就是关系是不稳定的

其次,如果一对夫妻不处在同一SCC中,但是仍然同时存在一个环中,那么这个环以及夫妻双方各自所在的两个SCC合并起来就构成了一个更大的SCC,与SCC的极大性矛盾

然后介绍一下二分图的做法,主要是每次不要重新跑一遍完整的匈牙利,因为题目是已经给出了一个完备匹配了,每次只用从被破坏的这对夫妻的某个点出发找一条增广路就好了

update 2024.5.31

这里二分图的做法,找增广路是按照题意出发的,而根据我们完备匹配必须边的充要条件,我们发现其实就是一对关系是不是必须边

而我们对二分图必须边可行边判定的实际操作中也是按照tarjan做强连通分量实现的,所以两者是互通的

posted @ 2024-03-23 21:03  最爱丁珰  阅读(4)  评论(0编辑  收藏  举报