国王的任务

以下考虑完备匹配(非完备匹配要用到网络流)

给定一张二分图,其最大匹配方案不一定是唯一的。若边(x,y)至少属于一个最大匹配的方案,则称(x,y)为二分图匹配的可行边

以下证明假设我们已经求出了一个最大匹配

在完备匹配时,一条边(x,y)是可行边,当且仅当满足以下两个条件之一:

1.在当前这个完备匹配的状态下,(x,y)是匹配边

2.在当前这个完备匹配的状态下,(x,y)是非匹配边。设当前xu匹配,yv匹配,那么连接(x,y)后,uv失去匹配,能找到一条从vu的增广路

充分性显然

必要性。利用反证,假设(x,y)是非匹配边。由于(x,y)是可行边,所以存在一种完备匹配的方案包含(x,y);我们将原图中x,y以及与x,y相关联的边全部去掉,那么这个新图的最大匹配也一定是完备匹配(至少包含(x,y)的完备匹配方案去掉(x,y)这条边就满足条件)。我们对这个新图跑匈牙利,将u,v放在最后跑。由条件,在原图中都不能找到vu的增广路,删边之后肯定更不存在vu的增广路了,于是这个新图的最大匹配就不是完备匹配,矛盾,所以(x,y)是可行边

如果我们把二分图中的非匹配边看作从左部到右部的有向边,把二分图中的匹配边看作从右部到左部的有向边,构成一张新的有向图,那么原图中从xy有增广路等价于新图中存在从xy的路径。这一个用充分必要性证明就可以了,比较简单

因此,可行边的判定条件是:(x,y)是原图的匹配边,或者xy两点在新图中属于相同的SCC

posted @   最爱丁珰  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示