
二分图
文章平均质量分 79
fyfcauc
这个作者很懒,什么都没留下…
展开
-
poj-3041
//1380K 47MS G++#include #include #define MAX 510int N;int K;int Vset1[MAX]; // rowint Vset2[MAX]; // columnint G[MAX][MAX]; // 0: no asteriod, 1: asteriodint assignedFlag[MAX];int waitin原创 2014-07-13 18:28:08 · 404 阅读 · 0 评论 -
二分图大讲堂——彻底搞定最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配
二分图大讲堂——彻底搞定最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配From: http://dsqiu.iteye.com/blog/1689505文本内容框架:§1图论点、边集和二分图的相关概念和性质§2二分图最大匹配求解匈牙利算法、Hopcroft-Karp算法§3二分图最小覆盖集和最大独立集的构造§4二分图最小路径覆盖求解§5二分图带转载 2014-07-15 09:42:56 · 672 阅读 · 0 评论 -
poj-1469
//756K 469MS G++#include #include #define MAX 310int G[MAX][MAX];int V1[MAX];int V2[MAX];int P; // course numint N; // student numint waittingMove[MAX];char getPair(int curId) {原创 2014-07-15 15:39:40 · 423 阅读 · 0 评论 -
poj-1087
// 2604K 32MS G++ #include #include #include #include #include using namespace std;#define MAX 230map deviceList;int receptacleNum;int deviceNum;int adapterNum;struct flowNode { int原创 2014-07-19 15:42:51 · 658 阅读 · 0 评论 -
poj-2195
#include #include #include using namespace std;#define MAX 110int map[MAX][MAX]; // 0: space, even: human odd: houseint N; // number of rows, heightint M; // number of columns. widthstruc原创 2014-07-18 17:34:24 · 607 阅读 · 0 评论 -
poj-2594
// 2712K 266MS G++ #include #include #include using namespace std;#define MAX 520int G[MAX][MAX];int G_F[MAX][MAX];int iNum;int sNum;int V1[MAX];int V2[MAX];char waitingMove[MAX];原创 2014-07-16 17:14:04 · 504 阅读 · 0 评论 -
二分图带权匹配 KM算法与费用流模型建立
From: https://www.byvoid.com/blog/match-km/[二分图带权匹配与最佳匹配]什么是二分图的带权匹配?二分图的带权匹配就是求出一个匹配集合,使得集合中边的权值之和最大或最小。而二分图的最佳匹配则一定为完备匹配,在此基础上,才要求匹配的边权值之和最大或最小。二分图的带权匹配与最佳匹配不等价,也不互相包含。我们可以使用KM算法实现求二分图的最转载 2014-07-16 20:18:35 · 646 阅读 · 0 评论 -
KM算法
From: http://www.cnblogs.com/crazyac/articles/1932808.html引用1:KM算法是通过给每个顶点一个标号(叫做顶标)来把求最大权匹配的问题转化为求完备匹配的问题的。设顶点Xi的顶标为A[i],顶点Yi的顶标为B [i],顶点Xi与Yj之间的边权为w[i,j]。在算法执行过程中的任一时刻,对于任一条边(i,j),A[i]+B[j]>=w转载 2014-07-17 17:11:10 · 550 阅读 · 0 评论 -
小白学习KM算法详细总结--附上模板题hdu2255
From: http://blog.youkuaiyun.com/zyy173533832/article/details/11519291KM算法是基于匈牙利算法求最大或最小权值的完备匹配关于KM不知道看了多久,每次都不能完全理解,今天花了很久的时间做个总结,归纳以及结合别人的总结给出自己的理解,希望自己以后来看能一目了然,也希望对刚学习KM算法的人有帮助,这里结合一个模板题,以及 图形解说,更转载 2014-07-17 16:49:23 · 761 阅读 · 0 评论 -
二分图匹配
From: http://blog.youkuaiyun.com/q3498233/article/details/5786225二分图:二分图是这样一个图,它的顶点可以分类两个集合X和Y,所有的边关联的两个顶点恰好一个属于集合X,另一个属于集合Y。二分图匹配:给定一个二分图G,在G的一个子图M中,M的边集中的任意两条边都不依附于同一个顶点,则称M是一个匹配。最大匹配:图中包含边数最多的匹配称转载 2014-07-17 15:49:44 · 491 阅读 · 0 评论 -
图的匹配问题与最大流问题(二)——最大流问题Ford-Fulkerson方法
From: http://blog.youkuaiyun.com/smartxxyx/article/details/9293665本篇承接上一篇文章,主要讲解最大流问题的Ford-Fulkerson解法。可是说这是一种方法,而不是算法,因为它包含具有不同运行时间的几种实现。该方法依赖于三种重要思想:残留网络,增广路径和割。本文将会详细介绍这些内容,下一篇文章我们提供一种该方法的Java实现。在介转载 2014-07-17 14:54:36 · 762 阅读 · 0 评论 -
图的匹配问题与最大流问题(五)——计算二分图的最大匹配
From: http://blog.youkuaiyun.com/smartxxyx/article/details/9672181二分图的最大匹配问题第一篇已经说过,下面看看百度百科给的一些解释:给定一个二分图G,M为G边集的一个子集,如果M满足当中的任意两条边都不依附于同一个顶点,则称M是一个匹配。极大匹配(Maximal Matching)是指在当前已完成的匹配下,无法再通过转载 2014-07-17 14:50:44 · 1424 阅读 · 0 评论 -
图算法之:匈牙利算法(最大二分匹配)
匈牙利算法是解决寻找二分图最大匹配的。(一)预备知识 什么是二分图:二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 什么是匹配:把上图想象成3男4女搞对象(无同性转载 2014-07-17 17:02:25 · 432 阅读 · 0 评论 -
poj-1422
//440K 0MS G++#include #include #define MAX 125int G[MAX][MAX];int iNum;int sNum;int V1[MAX];int V2[MAX];char waitingMove[MAX];char getPair(int checkId) { for (int i = 1; i <= iNum原创 2014-07-16 11:51:26 · 521 阅读 · 0 评论 -
最小边覆盖与最小路径覆盖的联系与区别
From: http://blog.youkuaiyun.com/wall_f/article/details/8187144鉴于我一直没有分清楚最小边覆盖与最小路径覆盖的关系,于是我就写写总结。边覆盖集:通俗地讲,所谓边覆盖集,就是G中所有的顶点都是E*中某条边的邻接顶点(边覆盖顶点),一条边只能覆盖2个顶点。注意:在无向图中存在用尽量少的边去“覆盖”住所有的顶点,所以边覆盖集有极小与最小的转载 2014-07-16 12:04:49 · 629 阅读 · 0 评论 -
poj-2446
#include #include #define MAX 35#define GRID_MAX MAX*MAXint G[MAX][MAX];char G_relation[GRID_MAX][GRID_MAX];int M; // lengthint N; // heightint K;int validGridNum;int V1[GRID原创 2014-07-15 17:56:37 · 558 阅读 · 0 评论 -
poj-1325
// 428K 0MS G++ #include #include #define MAX 110#define JOB_MAX 1020int G[MAX][MAX];int n;int m;int k;int V1[MAX];int V2[MAX];int waitingMove[MAX];char getPair(int beginId) {原创 2014-07-15 14:47:46 · 394 阅读 · 0 评论