本文转自大牛博客:http://www.byvoid.com/blog/hungary/这是一种用增广路求二分图最大匹配的算法。它由匈牙利数学家Edmonds于1965年提出,因而得名。 定义 未盖点:设Vi是图G的一个顶点,假设Vi 不与随意一条属于匹配M的边相关联,就称Vi 是一个未盖点。交错路...
分类:
编程语言 时间:
2014-12-25 12:54:49
阅读次数:
252
先做一遍匈牙利算法。对于已经匹配的边,如果删去之后还能最大匹配数增加,则不符合要求。一遍匈牙利算法是O(n^3)的,对于每一条边做n次,每次O(n^2),总的复杂度是O(n^3)。注意:不要忘记输出none。 1 var a:array[0..1000,0..1000] of boolean; 2 ...
分类:
编程语言 时间:
2014-12-24 21:23:14
阅读次数:
271
先对整幅图进行二分图染色,再跑一遍匈牙利算法。 1 /* CODEVS1022 */ 2 #include 3 #include 4 #include 5 #include 6 7 #define maxn 10008 8 9 struct edge{ 10 i...
分类:
编程语言 时间:
2014-12-23 20:58:03
阅读次数:
148
直接跑匈牙利,注意到“只有当选手正确回答一道题后,才能进入下一题,否则就被淘汰”,一旦无法满足就直接退出。 1 #include 2 #include 3 #include 4 #define maxn 2008 5 #define maxm 10008 6 7 struct edge{ 8...
分类:
编程语言 时间:
2014-12-22 21:01:27
阅读次数:
178
先对整幅图进行二分图染色,再跑一遍匈牙利算法。如果最大匹配数=点数*2,那么输出WIN。对于任何一个非必须在最大匹配上的点,即为所求的点。 1 Program Test375num2; 2 type arr=record 3 u,v,next:longint; 4 ...
分类:
编程语言 时间:
2014-12-22 19:26:42
阅读次数:
241
The Perfect Stall
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 19174
Accepted: 8696
Description
Farmer John completed his new barn just last week, compl...
分类:
编程语言 时间:
2014-12-17 22:43:29
阅读次数:
257
1:匈牙利命令法:其特点是前缀:例如:mName;2:Camel命名法:开头单词小写,其他单词首字母大写,如何只有一个字母小写。例如:getAllMembers。3:Pascal:命名法:和Camel命名法的区别在于:在于首字母大写。反正记住一个规则上面的命名法可以相互使用。总之一个原则是见名知意。
分类:
其他好文 时间:
2014-12-17 06:55:44
阅读次数:
196
在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人!卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获...
分类:
其他好文 时间:
2014-12-11 23:56:07
阅读次数:
281
介绍部分转载于维基百科:
匈牙利算法是众多用于解决线性任务分配问题的算法之一,是用来解决二分图最大匹配问题的经典算法,可以在多项式时间内解决问题,由美国数学家Harold Kuhn 于1955年提出。此算法之所以被称作匈牙利算法是因为算法很大一部分是基于以前匈牙利数学家Dénes K?nig和Jen? Egerváry的工作之上创建起来的.
问题简介:
设G=(V,E)是一个无向图。如顶...
分类:
编程语言 时间:
2014-12-10 12:37:44
阅读次数:
213
POJ 3041 最小点覆盖 裸匈牙利。 # include # include const int maxn = 505;
int n, k;
int c[maxn];
bool g[maxn][maxn];
bool vis[maxn];
int mark[maxn];
bool find(in...
分类:
其他好文 时间:
2014-12-03 23:03:36
阅读次数:
254