PART 1 什么是二分图 二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 此图即为一个二分图 ...
分类:
编程语言 时间:
2018-05-09 21:00:48
阅读次数:
250
这个是在工作中遇到的一个实际的算法问题,问题描述如下,当前有m个司机,n个乘客,每个司机和每个乘客的距离由经纬度可以计算得到,如何匹配可以使其去接乘客的距离和最小?(只能一个司机接一个乘客)带权二分图方法一般对KM算法的描述,基本上可以概括成以下几个步骤:(1)初始化可行标杆(2)用匈牙利算法寻找完备匹配(3)若未找到完备匹配则修改可行标杆(4)重复(2)(3)直到找到相等子图的完备匹配关于该算法
分类:
其他好文 时间:
2018-05-03 10:28:31
阅读次数:
173
【题解】 其实是个二分图最大匹配的模板题,直接上匈牙利算法就好了。 1 #include<cstdio> 2 #include<algorithm> 3 #define N 1010 4 #define rg register 5 using namespace std; 6 int n,m,E,a ...
分类:
其他好文 时间:
2018-04-22 21:51:58
阅读次数:
155
题目:http://poj.org/problem?id=2226 巧妙建图:以行或列上的联通块作为点,每个泥格子作为边,求最小点覆盖就可以了! 于是用匈牙利算法找最大匹配。注意要对右部点记录每一个左部点的vis! ...
分类:
其他好文 时间:
2018-04-17 19:37:03
阅读次数:
154
Description Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x N grid (1 <= N <= 500). The grid contains ...
分类:
编程语言 时间:
2018-04-15 11:40:52
阅读次数:
194
题意: 给出n个点,以及每个点到其他点的有向距离,要求设计线路使得每一个点都在一个环中,如果设计的线路拥有最小值,那么这个线路就是可选的。输出这个最小值或者说明最小线路不存在。 思路: 在DAG的最小路径覆盖中,找到的最大匹配数实际是非终点的点的最大数量(每一个匹配对应一个起点),点数减去这个数量就 ...
分类:
其他好文 时间:
2018-04-12 18:00:39
阅读次数:
158
题意: P门课程,N个学生。给出每门课程的选课学生,求是否可以给每门课程选出一个课代表。课代表必须是选了该课的学生且每个学生只能当一门课程的。 题解: 匈牙利算法的入门题。 #include <iostream> #include <cstring> #include <cstdio> #inclu ...
分类:
编程语言 时间:
2018-04-01 23:06:53
阅读次数:
247
1 /* 2 公式: 3 二分图最小顶点覆盖 = 二分图最大匹配 4 DAG图的最小路径覆盖 = 节点数(n)- 最大匹配数 5 二分图最大独立集 = 节点数(n)- 最大匹配数 6 */ 7 8 #include 9 using namespace std; 10 11 const int N=1... ...
分类:
编程语言 时间:
2018-03-22 13:42:36
阅读次数:
211