带权二分图的最大权匹配 KM算法模版下面是kuangbin大神的模版,已通过西电oj1048的测试#include#include#include#include#include#include#include#include#include#include#include#include#incl...
分类:
编程语言 时间:
2015-06-05 15:22:53
阅读次数:
260
po2400:题目链接
题目大意:n个老板,n个职工,每个老板有对职工的一个排名,每个职工有对老板的一个排名,排名靠前,表示满意度高,表示想去那个老板那工作或是想要某个职工,现在每个老板选择一个职工,要求最小的平均差。如果有多个的话,按字典序输出
最有的平均差 = ∑所有人距离最想要的人的差/(2*n)。
题目的描述写反了,先输入的是职工对老板的排名,然后是老板的。
对每个关系进行编号,排...
分类:
编程语言 时间:
2015-05-29 21:49:08
阅读次数:
140
1 //hdu1853 2 #include 3 #include 4 #define INF 99999999 5 int map[103][103],pr[103],pl[103],visr[103],visl[103],slack[103],match[103]; 6 int ...
分类:
编程语言 时间:
2015-05-28 15:53:06
阅读次数:
134
今天花了些时间学了下km算法 看了下代码有点大概思路,还是要多做题;KM算法求最小权二分匹配,模板题,构图很简单,直接把人当作左边的点,房子当作右边的点,两者之间的曼哈顿距离当作权值即可。第一次搞带权二分匹配的题,就是用KM算法求最小权的时候要加个处,由于KM求的是最大权,所以在套模板之前把权值都取...
分类:
编程语言 时间:
2015-05-26 23:17:25
阅读次数:
145
题目链接: http://poj.org/problem?id=2195解题思路: 把man和home都提取出来,然后算出每个man和home的距离算出来,然后建立匹配图,套用km算法的模板,求最小权值匹配,km模板一般是求最大权匹配,求最小的话,一般是取负,当然如果感觉取负逼格太low,也可以.....
分类:
编程语言 时间:
2015-05-05 18:51:26
阅读次数:
109
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2255解题思路: 了解km算法以后,就可以直接套用km算法,km算法:完备匹配下的最大权匹配,代码: 1 #include 2 #include 3 #include 4 #include ...
分类:
编程语言 时间:
2015-05-05 16:21:13
阅读次数:
133
原文:http://972169909-qq-com.iteye.com/blog/1184514 题目地址:这里。 1)求图中所有环的总长度(环的长度不唯一)的最小值。当无法得到完备匹配时说明环不存在。 第三题:http://acm.hdu.edu.cn/showproblem.php?p...
分类:
编程语言 时间:
2015-04-18 23:37:18
阅读次数:
235
题目大意:
在一个N*M的矩阵中,有M个人和M个房子,每个人要安排一个房子,每个房子只能安排一个人。
而每个人移动一步需要一美元。那么问题来了:求为每个人安排房子移动所需要的金钱最小值是多
少。
思路:
做一个二分图,一边为人,另一边为房子,如果把人和房子之间的距离作为边权的话,问题就变成
了求带权二分图最小权和的最佳匹配。这里我们为了方便计算,吧人和房子之间的距离的负值作为
边权,那么就变成了求带权二分图最大权和的最佳匹配,就是经典的二分图最佳匹配问题。用KM算
法解出最大权值和。取其相反,就得到了最小...
分类:
其他好文 时间:
2015-04-02 20:55:03
阅读次数:
169
解题思路:
二分图带权匹配,卡费用流,用KM算法。
#include
#include
#include
#include
using namespace std;
/* KM算法
* 复杂度O(nx*nx*ny)
* 求最大权匹配
* 若求最小权匹配,可将权值取相反数,结果取相反数
* 点的编号从0开始
*/
const int MAXN = 310;
co...
分类:
编程语言 时间:
2015-04-02 13:31:00
阅读次数:
188