• 二分图学习笔记


    二分图匹配。

    简而言之,就是顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。

    一个很大的算法,有二分图最大匹配,二分图最优匹配或者是二分图上独立集等等。。。。

    下面,来讲一下二分图最大匹配的算法。。

    二分图最大匹配和其判定采用的一般是染色法。。

    对于一个图,将一个点进行染色,并染到其子节点。若有更优的解法,进行替换。其实,也类似于广搜。

    板子。

    bool dfs(int x) {
    	for(int i=1; i<=n; i++) {
    		if(vis[x][i]&&!us[i]) {
    			us[i]=1;
    			if(!col[i]||dfs(col[i])) {
    				col[i]=x;return 1;
    			}
    		}
    	}
    	return 0;
    }
    

    有关二分图的题,一般都不会出的那么裸。。

    基本上只要建了图,就是最大匹配,最大独立集那么几种东西,随便搞搞就出来了。。

    主要得先建好图,那答案和最大匹配也差不了多少了。

    凑出样例,小心细节就可以过了。。。

    有关二分图的几个推论。

    推论一

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

    推论二

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

    在一个N*N的有向图中,路径覆盖就是在图中找一些路经,使之覆盖了图中的所有顶点,
    且任何一个顶点有且只有一条路径与之关联;(如果把这些路径中的每条路径从它的起始点走到它的终点,

    那么恰好可以经过图中的每个顶点一次且仅一次);如果不考虑图中存在回路,那么每每条路径就是一个弱连通子集.

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

    推论三

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

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

    有关的也就结束了,

    总之,二分图就是要想到如何建图,想好怎么建图。。。

    推论四

    二分图的最大权独立集=点权和-最大权匹配
  • 相关阅读:
    linux学习之线程篇(二)
    linux学习之线程篇(一)
    linux学习之进程篇(四)
    linux学习之信号篇(二)
    linux学习之信号篇(一)
    myshell案例
    linux学习之gdb调试工具篇
    linux学习之Makefile篇
    linux学习之进程篇(三)
    Linux常用命令-1
  • 原文地址:https://www.cnblogs.com/dsjkafdsaf/p/11278933.html
Copyright © 2020-2023  润新知