什么叫二分图呢。。。
就是这样的。。。
通俗地讲 就是一个图有左右两部分 左右部分没有边 但是他们左右相连了
什么又叫匹配呢。。。比如就是这样一道题
现在你要使得情侣尽可能的多 这就叫二分图的匹配。。
匈牙利算法就是解决二分图匹配的经典算法
匈牙利算法其实就是一种网络流的思想 本质就是不断地寻找增广路,当找不到增广路的时候,当前增广路数量就是答案
定义数组:For 表示当前点已经匹配的点 used 标记数组 表示该点已经试图被查过了 如果查过(且used[i]=1 ) 就不必浪费功夫再查一遍(值得一提的是 used数组每次查询都要初始化为0)
查询过程:遍历左部分(右也行...)对于每一个点 从这个点出发,向它每一个相连的点遍历过去。如果这个点没有被查过,且这个点名花无主或者它的原本匹配点可以找到别人,那么就把这个点与出发点匹配
看代码吧(网络流24题第一题 飞行员配对方案问题)
//匈牙利算法的本质就是不断地寻找增广路,当找不到增广路的时候,当前增广路数量就是答案
#include<bits/stdc