概述
二分图判定很好说就是没有奇边环即可
然后就是匈牙利算法了匈牙利算法求的是最大匹配集根据一个定理这也等于最小点覆盖集
匈牙利算法
匈牙利算法原理是通过増广路实际上也不需要这么的复杂,核心在于我前面的两个点如果已经选了我再进行匹配的时候要怎么最优化
道理在于先维护一个vis代表当前点遍历过后所有的点,这个vis巧妙而且必不可少因为如果这是保证切换寻找的时候不会出现重复的现象
代码
1 |
|
最大权匹配集
匈牙利算法的升级版,应用于左右互相最大的匹配边权和最大值,匈牙利算法的重复尝试在于连接性这里要加上边权的问题
首先我们初始化左边的wl数组为边权最大的那条边的权值右边为0
接着我们每次匹配如果出现了问题,需要重复匹配按照这样的规则:
出现二夹一就要左加右减
最后把答案统计即可
代码
1 |
|