二分图匹配-匈牙利算法学习心得

什么叫二分图呢。。。

就是这样的。。。

通俗地讲 就是一个图有左右两部分 左右部分没有边 但是他们左右相连了

什么又叫匹配呢。。。比如就是这样一道题


现在你要使得情侣尽可能的多 这就叫二分图的匹配。。

匈牙利算法就是解决二分图匹配的经典算法

匈牙利算法其实就是一种网络流的思想 本质就是不断地寻找增广路,当找不到增广路的时候,当前增广路数量就是答案

定义数组:For 表示当前点已经匹配的点    used 标记数组 表示该点已经试图被查过了 如果查过(且used[i]=1 ) 就不必浪费功夫再查一遍(值得一提的是 used数组每次查询都要初始化为0)

查询过程:遍历左部分(右也行...)对于每一个点 从这个点出发,向它每一个相连的点遍历过去。如果这个点没有被查过,且这个点名花无主或者它的原本匹配点可以找到别人,那么就把这个点与出发点匹配

看代码吧(网络流24题第一题 飞行员配对方案问题)

//匈牙利算法的本质就是不断地寻找增广路,当找不到增广路的时候,当前增广路数量就是答案
#include<bits/stdc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值