带花树(一般图最大匹配)详解 ZOJ 3316

1.增广路:长度为奇数,第一条和最后一条边都是未匹配的边,增光路径是一条匹配边,一条未匹配边这样交错的路径,也叫做交错路

2.二分图已经得到最大匹配当且仅当没有增广路

因为如果这时候还有增广路(长度为2*k+1),其中k条匹配的边,k+1条未匹配的边,其中第一条和最后一条是未匹配的边,我们可以把原来是未匹配的(k+1)变成匹配的,原来匹配的(k)变成未匹配的,结果增加1

所以二分图的匈牙利算法枚举左边的点集,每次若找到增广路,匹配数就+1

该原理是匈牙利算法的核心

3.寻找增广路的做法是:从一个还没被匹配的点(exposed vertex)出发,中间形成交错路径,最后停止在一个没被匹配的点,这就是一条增广路,

定义:在路径上给这些点从1开始标号,奇数的点我们称为外点,偶数的点我们称为内点,可以发现他们恰好对应两个集合(X为外点的集合,Y为内点的集合)

直接寻找增广路做法不适用于一般图匹配的原因:寻找增广路时会形成环,导致有些点既是内点又是外点

那又怎样呢?

http://hi.baidu.com/cloudygoose/item/1ccf42a1c678d0d85af19178

一些题解的说法是二分图中会形成环&#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值