程序员的资源宝库

网站首页 > gitee 正文

图论之二分图相关内容

sanyeah 2024-04-05 13:06:56 gitee 4 ℃ 0 评论

先来个360百科:

二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。

那通俗来讲就是点能分成两个集合,同个集合的点之间没有边。

然后先来讲二分图的匹配吧。

先上博客:

二分图的最大匹配用的是匈牙利算法,上面的博客已经有非常详细的题解加解释,我就简单讲一下流程。

第一步:遍历一遍X集合所有未匹配的点x,由这个点去找增广路。

第二步:遍历一遍Y集合中没有在当前交错树中被访问过且跟当前的x有相连的点y

第三步:看y有没有匹配,没有的话,找到增广路,回溯回去修改。

第四步:y有匹配的话,看y匹配的那个x点能不能换一个匹配,也就是由它去找增广路。

第五步:交题,AC。

复杂度:

时间复杂度邻接矩阵:最坏为O(n^3)邻接表:O(mn)

空间复杂度 邻接矩阵:O(n^2) 邻接表:O(m+n)

具体例题,因为之前做的没怎么保存,所以之后再补上了。

匈牙利算法,还有个优化,就是通过HK算法来优化到√nm的复杂度,

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表