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

  • 相关阅读:
    <%%>与<scriptrunat=server>,<%=%>与<%#%>的区别
    UVA 11134
    Codeforces Round #219 (Div. 1)(完全)
    Delphi版浏览器(持续更新)
    Spring3.0 入门进阶(三):基于XML方式的AOP使用
    UVa 10801 Lift Hopping / floyd
    poj 3501 Escape from Enemy Territory 二分+bfs
    vim 编辑器
    RRT路径规划算法(matlab实现)
    A*寻路算法C++简单实现
  • 原文地址:https://www.cnblogs.com/LMCC1108/p/11541015.html
Copyright © 2011-2022 走看看