二分图匹配的扩展问题

二分图匹配的扩展问题

/**

    前面提到了匈牙利算法解决二分图匹配问题,但是基于二分图还有几个经常
    见的扩展问题如下:
        1、最大独立集点数
        2、最小顶点覆盖数
        3、最小路径覆盖数
    **********************************************************************
    最大独立集点数:

        有5个同学,小明,小强,小壮,小雨,小丽,现在要做游戏,可是小雨
    小丽都不喜欢小明,问最多能挑出多少学生使他们在一起玩???

    显然答案为4,直接把小明赶走即可,因为如果小明在,小雨和小丽两个女女
    就不干了。。

    *最大独立集点数 = N - 最大匹配数

    如下建图

       小雨 * * *小明
              *
       小丽 *    小强

                 小壮
    最大匹配为 1,有 5 个点,所以最大独立集点数为 5 - 1 = 4;
    **********************************************************************

    最小顶点覆盖数:
        即在二分图中用最少的点关联所有的边,如上图:最小顶点覆盖数为 1
    即小明一个人就关联了仅存的两条边。。

    最小顶点覆盖数 = 最大匹配数

    Konig定理:二分图的最小顶点覆盖数等于最大匹配数。
    网上有关于这个定理的证明。。。

    后面还会遇到树的最小支配集,即最少的点关联所有的点或边。。。
    树的最小支配集用贪心和树形DP 解决,后面会提到
    **********************************************************************

    最小路径覆盖
        路径覆盖就是在*无环有向图*中找一些路径,使之覆盖了图中所有顶点,且
    任何一个顶点有且只有一条路径与之关联。

    最小路径覆盖 = N - 最大匹配数

    **********************************************************************

        二分图匹配和网络流一样,都在于建图,应该说几乎所有的图论题都在于建图
    建图的技巧和难度,决定了这道题的质量和难度,所以会套模板是基础,建图才是
    王道……

    注意:上面3个只适用于有向无环图,当为无向图时可以通过拆点转换为有向图,但
    算出的最大匹配得除二。。 但不能有环

    拆点:N个点 则把 X 点拆成 2N+X 则 2N+X 完全等价X 去添边,即无向边ab,
    可拆成 a->2N+b b->2N+a。。用匈牙利算法算出最大匹配除二即为匹配

*/

你可能感兴趣的:(二分图匹配的扩展问题)