zoukankan      html  css  js  c++  java
  • 二分图匹配相关所有总结

    1。一个二分图中的最大匹配数等于这个图中的最小点覆盖数

    König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数。如果你还不知道什么是最小点覆盖,我也在这里说一下:假如选了一个点就相当于覆盖了以它为端点的所有边,你需要选择最少的点来覆盖所有的边。

    2。最小路径覆盖=|G|-最大匹配数

    在一个N*N的有向图中,(二分图是无向图呃)路径覆盖就是在图中找一些路经,使之覆盖了图中的所有顶点,
    且任何一个顶点有且只有一条路径与之关联;(如果把这些路径中的每条路径从它的起始点走到它的终点,
    那么恰好可以经过图中的每个顶点一次且仅一次);如果不考虑图中存在回路,那么每每条路径就是一个弱连通子集.

    由上面可以得出:

    1.一个单独的顶点是一条路径;
    2.如果存在一路径p1,p2,......pk,其中p1 为起点,pk为终点,那么在覆盖图中,顶点p1,p2,......pk不再与其它的
    顶点之间存在有向边.

    最小路径覆盖就是找出最小的路径条数,使之成为G的一个路径覆盖.

    路径覆盖与二分图匹配的关系:最小路径覆盖=|G|-最大匹配数;

    3。二分图最大独立集=顶点数-二分图最大匹配

    独立集:图中任意两个顶点都不相连的顶点集合。

     ps1:

    上述第二条定理证明:

    如果匹配数为零,那么P中不存在有向边,于是显然有:
    最小路径覆盖=|P|-最大匹配数=|P|-0=|P|;即P的最小路径覆盖数为|P|;
    P'中不在于匹配边时,路径覆盖数为|P|;
    如果在P'中增加一条匹配边pi'-->pj'',那么在图P的路径覆盖中就存在一条由pi连接pj的边,也就是说pi与pj 在一条路径上,于是路径覆盖数就可以减少一个;
    如此继续增加匹配边,每增加一条,路径覆盖数就减少一条;直到匹配边不能继续增加时,路径覆盖数也不能再减少了,此时就有了前面的公式;但是这里只 是说明了每条匹配边对应于路径覆盖中的一条路径上的一条连接两个点之间的有向边;下面来说明一个路径覆盖中的每条连接两个顶点之间的有向边对应于一条匹配 边;
    与前面类似,对于路径覆盖中的每条连接两个顶点之间的每条有向边pi--->pj,我们可以在匹配图中对应做一条连接pi'与pj''的边, 显然这样做出来图的是一个匹配图(这一点用反证法很容易证明,如果得到的图不是一个匹配图,那么这个图中必定存在这样两条边 pi'---pj'' 及 pi' ----pk'',(j!=k),那么在路径覆盖图中就存在了两条边pi-->pj, pi--->pk ,那边从pi出发的路径就不止一条了,这与路径覆盖图是矛盾的;还有另外一种情况就是存在pi'---pj'',pk'---pj'',这种情况也类似可证);

    ps2:

    hungary邻接矩阵时间复杂度 O(V^3)  邻接表时间复杂度O(VE)


    ps3:

    最大独立集     最大团

    http://blog.csdn.net/whosemario/article/details/8513836


    把它上面博客提到的题都A了。

    参考:http://www.cnblogs.com/kuangbin/archive/2012/08/26/2657446.html (题目归总挺好)

    参考:http://www.docin.com/p-601738502.html (非常全的资料)

  • 相关阅读:
    【逆序对】N*M Puzzle / Simple Puzzle
    【逆序对】Ultra
    bzoj 1814 Fornula 1
    hdu 1693 插头dp入门
    bzoj 2154
    没有上司的舞会
    【HNOI】合唱队
    luogu 自适应Simpson2
    luogu 自适应Simpson1
    【bzoj 1502】月下柠檬树
  • 原文地址:https://www.cnblogs.com/pangblog/p/3331140.html
Copyright © 2011-2022 走看看