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

  • 相关阅读:
    爬虫基本库request使用—爬取猫眼电影信息
    Linux系统下Mysql安装与配置
    Centos7安装配置Nginx
    VUE中使用geetest滑动验证码
    python中使用redis发布订阅者模型
    Django中使用极验Geetest滑动验证码
    Redis的常见用法
    微信服务号消息推送
    Python支付宝在线支付API
    Django Rest Framework(二)
  • 原文地址:https://www.cnblogs.com/LMCC1108/p/11541015.html
Copyright © 2011-2022 走看看