zoukankan      html  css  js  c++  java
  • 图论之二分图相关内容

    先来个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的复杂度,

  • 相关阅读:
    CF763C Timofey and Remoduling
    CF762E Radio Stations
    CF762D Maximum Path
    CF763B Timofey and Rectangles
    URAL1696 Salary for Robots
    uva10884 Persephone
    LA4273 Post Offices
    SCU3037 Painting the Balls
    poj3375 Network Connection
    Golang zip压缩文件读写操作
  • 原文地址:https://www.cnblogs.com/LMCC1108/p/11541015.html
Copyright © 2011-2022 走看看