白书:二分图匹配

二分图最大匹配

给出一个二分图,找出一个边数最大的匹配,任意边是没有公共点的。
如果所有点都是匹配点,则其是完美匹配。

增广路算法

未盖点:不与匹配边邻接的点,其他点为匹配点
从未盖点出发,依次经过非匹配边、匹配边、非匹配边、匹配边…所得到的的路是交替路。
显然等价于 未盖点到匹配点到未盖点…
我们能够确定的是,未盖点连接的一定是匹配点。
如果终点是未盖点,说明是一条增广路,并且非匹配边比匹配边多一条。

增广路的作用是改进匹配,如果有增广陆,可以将非匹配边和匹配边互换。可以得到更优。
所以显然:一个匹配是不是最大匹配的充分必要条件是不存在增广路。(这个条件适合任意图

t e s t 1 test1 test1

无向图上, A A A B B B轮流操作, A A A先走,第一次可以挑一个点,以后每次把棋子移动到一个相邻点,并删除原来的点。不能移动则输。

如果有完美匹配, A A A选择哪个点都是匹配点, B B B可以找到一条匹配边走,到达另一个匹配点。无论 A A A怎么走。 A A A B B B选棋子的过程等价于选一对匹配出来。 A A A挑出一个点, B B B一定有一条匹配边找到另一个点,然后相当于把这对匹配删除。显然 B B B赢。
否则 A A A赢。
任意求一个最大匹配,此时不存在增广路,并且一定有未盖点(不是完美匹配, A A A选择了未盖点之后,每次都只能到达匹配点,但是由于 A A A先走,所以是 B B B先找到一个匹配点, A A A再去匹配,所以 B B B能走, A A A一定能走

增广路算法

选择一个未盖点做起点 u u u,选一条非匹配边到达 v v v,如果 v v v是非盖点,那么找到增广路,否则是匹配点,那么一定有匹配边走。然后继续找一条非匹配边。
如果一直没有未盖点,那么最后会扩展出一棵所谓的匈牙利树。

每次选择一个未盖点 d f s dfs dfs,如果找不到增广路,则换一个继续。并且从此以后不再从这里 d f s dfs dfs.
因为如果以后存在一个从 u u u出发的增广路,那么现在就找得到。【显然

二分图最佳完美匹配

假如有一个完全二分图 G G G,每条边有一个权值,如何求出权值和最大的完美匹配?
可行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值