有两个约束条件的二分图匹配 我们回忆一下二分图匹配的匈牙利算法的具体流程,它是通过寻找增广路来判断最大匹配数的,我们再观察一下题目中的两个条件,只有两个条件都满足,才算找到一条增广路,所以我们可以分别寻找判断两个条件。即对两个二分图交替匹配,只有两个二分图都能找到增广路时,才算是一次匹配完成。 cp ...
分类:
其他好文 时间:
2018-01-11 17:26:39
阅读次数:
151
传送门 根据公式xjb推一下,然后就可以连边。 考虑到字典序最小,和匈牙利算法的实现过程,要倒序匹配。 ...
分类:
其他好文 时间:
2018-01-10 20:18:05
阅读次数:
190
原文链接http://www.cnblogs.com/zhouzhendong/p/8254062.html 题目传送门 - HDU1507 题意概括 有一个n*m的棋盘,有些点是废的。 现在让你用1*2的矩形覆盖所有的不废的点,并且不重叠,问最多可以覆盖多少个1*2的矩形,输出方案,有SPJ。 输 ...
分类:
编程语言 时间:
2018-01-10 00:08:03
阅读次数:
198
原文链接http://www.cnblogs.com/zhouzhendong/p/8232649.html 题目传送门 - POJ1469 题意概括 在一个大矩阵中,有一些障碍点。 现在让你用1*2的小矩形覆盖非障碍点,要求不覆盖到障碍点并且不重复覆盖,问是否可以覆盖所有非障碍点。 题解 本题几乎 ...
分类:
编程语言 时间:
2018-01-08 01:10:47
阅读次数:
178
【网络流24题】飞行员配对方案问题 题面 这些题都用Cogs交算了 因为cogs有SPJ "题面" 题解 很简单的二分图匹配 匈牙利算法就能够解决 求最大流的话 再加上一个源点一个汇点即可 cpp include include include include include include inc ...
分类:
其他好文 时间:
2018-01-02 11:46:40
阅读次数:
142
匈牙利算法: 由于最近复习图论,看到匈牙利算法很是头疼,主要是图论是理学院所开课程,因此证明很多。故打算从原理到证明,系统的讲解下该算法。 1.基础概念 首先为了便于理解,给出一些概念的数学定义: 途径:可以理解为,在一个图中,从某一个顶点开始,沿着某条边到达另一个顶点,接着做同样的操作,最后你所走 ...
分类:
编程语言 时间:
2017-12-29 16:55:10
阅读次数:
132
luogu 匈牙利算法 cpp include include include using namespace std; int n, m, uu, vv, e, lnk[1005], ans; bool a[1005][1005], vis[1005]; bool dfs(int u){ for( ...
分类:
编程语言 时间:
2017-12-21 23:06:40
阅读次数:
198
「网络流24题」1. 飞行员配对方案问题 "" 比较经典的一道二分图最大匹配。 匈牙利算法走起啊。 算出答案后,输出每个外籍飞行员匹配的点(如果有)即可。 匈牙利算法,简而言之就是,每个x部点u去找自己能匹配上的第一个y部点v,如果v还没有被匹配,或是v已经匹配的x部点w还能匹配其他y部点)就将x与 ...
分类:
其他好文 时间:
2017-12-21 22:58:24
阅读次数:
175
个人心得:二分图啥的一点都不知道,上网借鉴了下,请参考http://blog.csdn.net/thundermrbird/article/details/52231639 加上自己的了解,二分图就是将图形拆分成俩半,俩边的点通过边界相连接。匹配就是不存在俩条边存在同一顶点,就是一个顶点最多连接一条 ...
分类:
编程语言 时间:
2017-12-11 21:15:21
阅读次数:
268
匈牙利算法(Hungarian method)是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是二部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。 之前在学离散的时候学习到二分图的时候没听说过这 ...
分类:
编程语言 时间:
2017-12-09 20:57:10
阅读次数:
220