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

  • 相关阅读:
    [Unity热更新]04.卸载方式
    [Unity热更新]03.加载方式
    [Unity热更新]02.依赖关系
    [Unity热更新]01.打包与加载基础
    [Unity优化]批处理05:UGUI
    [Unity优化]gc02:StringBuilder
    [Unity优化]gc01:字符串常量池
    虚拟机中安装centos系统的详细过程
    零基础学习java------40---------Maven(maven的概念,安装,maven在eclipse中使用),springboot(spring整合springmvc(注解),spring整合mybatis(常见的配置文件)),前端页面(bootstrap软件)
    零基础学习java------39---------json格式交互,Restful(不懂),静态资源映射,SSM整合(ssm整合思想,application.xml文件详解(声明式事务管理),)
  • 原文地址:https://www.cnblogs.com/LMCC1108/p/11541015.html
Copyright © 2011-2022 走看看