摘要: 【二分图】二分图是一种特殊的图结构,所有点分为两类,记做x和y,所有的边的两端分别在x和y,不存在两端同在x或y的边。【最大匹配、完备匹配】给定一个二分图(x,y),找到一种匹配数最大的方案,记做最大匹配。|x|=|y|=匹配数时,我们称该匹配方案为完备匹配。显然,解决了最大匹配也就解决了完备匹配。解决二分图的最大匹配可以用网络流或者匈牙利算法,两者本质上是相同的,不过不论从编程复杂度还是运行效率来讲,匈牙利算法都更加优秀。关于匈牙利算法,可以参见我以前写的文章:用匈牙利算法求二分图的最大匹配这里我主要叙述另一类问题:【最优完备匹配】对于二分图的每条边都有一个权(非负),要求一种完备匹配方案, 阅读全文
posted @ 2012-09-08 21:20 一生挚爱 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1054简单二分匹配,根据题意构造一个无向图。然后求最小点覆盖,然后扫描mark数组将曾经匹配的点所匹配的边消去。最小点覆盖 = 最大二分匹配#include#include#define maxn 1505struct node{ int v; node *next;}*head[maxn],edge[maxn*maxn],*p;int n,vis[maxn],mark[maxn];bool dfs(int v){ for(node *p = head[v]; p ; p = p->next) 阅读全文
posted @ 2012-09-08 20:30 一生挚爱 阅读(127) 评论(0) 推荐(0) 编辑