国王的任务
以下考虑完备匹配(非完备匹配要用到网络流)
给定一张二分图,其最大匹配方案不一定是唯一的。若边\((x,y)\)至少属于一个最大匹配的方案,则称\((x,y)\)为二分图匹配的可行边
以下证明假设我们已经求出了一个最大匹配
在完备匹配时,一条边\((x,y)\)是可行边,当且仅当满足以下两个条件之一:
1.在当前这个完备匹配的状态下,\((x,y)\)是匹配边
2.在当前这个完备匹配的状态下,\((x,y)\)是非匹配边。设当前\(x\)与\(u\)匹配,\(y\)与\(v\)匹配,那么连接\((x,y)\)后,\(u\)和\(v\)失去匹配,能找到一条从\(v\)到\(u\)的增广路
充分性显然
必要性。利用反证,假设\((x,y)\)是非匹配边。由于\((x,y)\)是可行边,所以存在一种完备匹配的方案包含\((x,y)\);我们将原图中\(x,y\)以及与\(x,y\)相关联的边全部去掉,那么这个新图的最大匹配也一定是完备匹配(至少包含\((x,y)\)的完备匹配方案去掉\((x,y)\)这条边就满足条件)。我们对这个新图跑匈牙利,将\(u,v\)放在最后跑。由条件,在原图中都不能找到\(v\)到\(u\)的增广路,删边之后肯定更不存在\(v\)到\(u\)的增广路了,于是这个新图的最大匹配就不是完备匹配,矛盾,所以\((x,y)\)是可行边
如果我们把二分图中的非匹配边看作从左部到右部的有向边,把二分图中的匹配边看作从右部到左部的有向边,构成一张新的有向图,那么原图中从\(x\)到\(y\)有增广路等价于新图中存在从\(x\)到\(y\)的路径。这一个用充分必要性证明就可以了,比较简单
因此,可行边的判定条件是:\((x,y)\)是原图的匹配边,或者\(x\)和\(y\)两点在新图中属于相同的SCC