二分图讲解

知识·匹配

给定一个二分图G,M为G边集的一个子集,若M满足任意两条边都不依附于同一个节点

极大匹配是当前已完成匹配情况下,无法再通过增加未完成匹配的边的方式来增加匹配的边数

最大匹配是指G的匹配集中匹配边数最大的匹配

完全匹配是指G中的每一个点都依附于一条匹配边的匹配,亦称完备匹配

知识·定理

1.Berge定理

给定G的一个匹配M。若一条路径的边交替出现在M和不出现在M中,则这条路径成为M-交错路径

路径的起始点和终点未被M匹配的M-交错路径叫做M-增广路径

图G的匹配M是最大匹配当且仅当G中没有M-增广路

知识·关键点

关键点是指一定在最大匹配中的点

由于二分图是左右对称的,我们只考虑找左边的点

先求一个任意最大匹配M

先给二分图定向:匹配边从右到左、非匹配边从左到右,从左侧每个未盖点dfs,给到达的点打上标记。

最终每个左侧点都没有标记的匹配点为即为关键点

因为只关心可到达性,显然每个点至多访问一次,复杂度O(n+m)

时间: 2024-10-29 19:06:06

二分图讲解的相关文章

算法讲解:二分图匹配

算法讲解:二分图匹配 二分图匹配,自然要先从定义入手,那么二分图是什么呢? 二分图: 二分图又称作二部图,是图论中的一种特殊模型. 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图. 简单的说,一个图被分成了两部分,相同的部分没有边,那这个图就是二分图,二分图是特殊的图. 匹配: 给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两

算法笔记_139:二分图的最大权分配(Java)

目录 1 问题描述 2 解决方案   1 问题描述 何为二分图的最大权匹配问题? 最大权二分匹配问题就是给二分图的每条边一个权值,选择若干不相交的边,得到的总权值最大. 2 解决方案 对于此问题的讲解,引用文末参考资料1: 解决这个问题可以用KM算法.理解KM算法需要首先理解"可行顶标"的概念.可行顶标是指关于二分图两边的每个点的一个值lx[i]或ly[j],保证对于每条边w[i][j]都有lx[i]+ly[j]-w[i][j]>=0.如果所有满足lx[i]+ly[j]==w[i

【网络流-二分图最大匹配】poj3041Asteroids

/* 这道题将每行x看成是结点x,没列y看成是结点y,而障碍物的坐标xy看成是从x到y的 一条边.建图后问题就变成了,找最少的点,使得这些点与所有的边相邻,即最小 点覆盖,用匈牙利算法解决. ------------------------------- 定理:最小点覆盖数 = 最大匹配数,即求图的最大匹配即可,匈牙利算法 ------------------------------- 模板讲解: bool find(int v) { for(int i=1; i<=n; i++) { if(g

二分图之匈牙利算法

(⊙o⊙)…——————————————————————————————————————————————————————————————————前面的概念大多使用网上粘的(ORZ) one.基本概念 1. 二分图 二分图是图论中的一种特殊模型.若能将无向图G=(V,E)的顶点V划分为两个交集为空的顶点集,并且任意边的两个端点都分属于两个集合,则称图G为一个为二分图. 2.匹配 一个匹配即一个包含若干条边的集合,且其中任意两条边没有公共端点.如下图,图3的红边即为图2的一个匹配. 有关匹配 ①最大

uva1201 DAG 最小路径覆盖,转化为 二分图

大白例题P356 你在一座城市里负责一个大型活动的接待工作.你需要去送m个人从出发地到目的地,已知每个人的出发时间出发地点,和目的地点,你的任务是用尽量少的出租车送他们,使得每次出租车接客人,至少能提前一分钟达到他所在的位置,城市为网格 (x1,y1) ===>(x2,y2) 需要|x1-x2|+|y1-y2|分钟 题解: 本题的模型是DAG的最小路径覆盖.所谓最小路径覆盖就是在图中找尽量少的路径,使得每个结点恰好在一条路径上(话句话说,不同路径不能有公共点).单独的节点也可以作为一条路径. 本

算法大讲堂之二分图

二分图大讲堂——彻底搞定最大匹配数(最小覆盖数).最大独立数.最小路径覆盖.带权最优匹配 文本内容框架: §1图论点.边集和二分图的相关概念和性质 §2二分图最大匹配求解 匈牙利算法.Hopcroft-Karp算法 §3二分图最小覆盖集和最大独立集的构造 §4二分图最小路径覆盖求解 §5二分图带权最优匹配求解 Kuhn-Munkers算法 §6小结 每章节都详细地讲解了问题介绍,算法原理和分析,算法流程,算法实现四部分内容,力求彻底解决问题. §1图论点.边集和二分图的相关概念和性质 点覆盖.最

算法系列笔记10(有关图的算法三—最大流与二分图)

本次主要记录流网络以及最大流的简单概念(以后可能会将最大流的实现算法补充),重点讲解用匈牙利算法来求二分图的最大匹配. 1:流网络 流网络是G(V, E)是一个有限的有向图,它的每条边(u, v)∈E都有一个非负值实数的容量c(u, v)≥0.如果(u, v)不属于E,我们假设c(u, v) = 0.我们区别两个顶点: 一个源点s和一个汇点t..并假定每个顶点均处于从源点到汇点的某条路径上. 形式化的定义:一道网络流是一个对于所有结点u和v都有以下特性的实数函数::满足下面两条性质: 容量限制:

二分图的最大匹配——匈牙利算法

一.前人种树 博客:趣写算法系列--匈牙利算法 博客:二分图最大匹配 博客:二分图的最大匹配--匈牙利算法 二.题目讲解 博客:POJ1274:The Perfect Stall(二分图最大匹配 匈牙利算法)

km算法(二分图最大权匹配)学习

啦啦啦! KM算法是通过给每个顶点一个标号(叫做顶标)来把求最大权匹配的问题转 化为求完备匹配的问题的.设顶点Xi的顶标为A[i],顶点Yi的顶标为B[i],顶点Xi与Yj之间的边权为w[i,j].在算法执行过程中的任一时刻,对于任一条边(i,j), A[i]+B[j]>=w[i,j]始终成立. KM算法的正确性基于以下定理: *  若由二分图中所有满足A[i]+B[j]=w[i,j]的边(i,j)构成的子图(称做相等子图)有完备匹配,那么这个完备匹配就是二分图的最大权匹配. * 这个定理是显然