【书本上的算法往往讲得非常复杂,我计划用一个幽默的例子来描述算法的流程】
匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。
一.先上基本概念:
二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都...
分类:
编程语言 时间:
2016-05-13 04:17:20
阅读次数:
218
二分图匹配(匈牙利算法)1。一个二分图中的最大匹配数等于这个图中的最小点覆盖数König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数。如果你还不知道什么是最小点覆盖,我也在这里说一下:假如选了一个点就相当于覆盖了以它为端点的所有边,你需要选择最少的点来覆盖所有的边。2。最小路径覆盖=最小路径覆盖=|G|-最大匹配数在一个N*N的有向图中,路径覆盖就是...
分类:
其他好文 时间:
2016-05-13 01:39:57
阅读次数:
236
Ollivanders: Makers of Fine Wands since 382 BC.Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 1314 Accepted Submission(s): 718Problem Desc...
分类:
编程语言 时间:
2016-05-13 01:37:11
阅读次数:
175
有暴力搜索和二分图匹配两种解题思路。用dfs搜比较容易,而二分图则是一种更为优化的算法。刚刚接触二分图,发现这种思路很巧妙,以后要多加练习。
下面是dfs求法
#include
#include
using namespace std;
char map[5][5];
int visitr[5]; //记录横坐标
int visitl[5]; //记录纵坐标
int maxn,...
分类:
Web程序 时间:
2016-05-12 16:05:21
阅读次数:
194
二部图及其最大匹配:
二部图:对于无向图G(V,E),若能将其顶点分成V1,V2两个不相交的非空子集,使得G中的任何一条边的两个端点一个属于V1,另一个属于V2,那么该图就称为二部图。
性质:一个无向图G(V,E)是二部图当且仅当G中不存在长度为奇数的回路。
匹配:在图论中,一个「匹配」(matching)是一个边的集合,其中任意两条边都没有公共顶点。例如,图 3、图 4 中红色的边就是图...
分类:
其他好文 时间:
2016-04-29 15:30:36
阅读次数:
257
二分图匹配 题意:给你一个矩阵,X所在的地方是墙,往上面放碉堡,碉堡所在的行和列上的所有的点消灭掉。 与最简单的二分图不同的是,有墙。 做二分图的题,第一步要建图,在这里,二分图是一条边的两端分处于不同的点集、所以每找到一个点就把和他同一行、同一列的点都做同样的标记。遇到墙就停下 ...
分类:
其他好文 时间:
2016-04-29 13:55:37
阅读次数:
117
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 5 const int inf=0x3f3f3f3f; 6 const int sink=30; 7 8 struct Edge 9 { 10 int to; 11 i ...
分类:
其他好文 时间:
2016-04-16 23:12:58
阅读次数:
436
题目: http://cojs.tk/cogs/problem/problem.php?pid=409 409. [NOI2009]变换序列 ★★☆ 输入文件:transform.in 输出文件:transform.out 简单对比时间限制:1 s 内存限制:128 MB 【问题描述】 对于N个整数 ...
分类:
编程语言 时间:
2016-04-16 21:21:00
阅读次数:
261
诈个尸。 1.飞行员配对方案问题 二分图匹配。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #include <queue> 6 using namespace std ...
分类:
其他好文 时间:
2016-04-15 20:15:09
阅读次数:
208