二分图学习笔记

二分图匹配。

简而言之,就是顶点集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|-最大匹配数;

推论三

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

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

有关的也就结束了,

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

推论四

二分图的最大权独立集=点权和-最大权匹配
posted @ 2019-07-31 20:37  dsjkafdsaf  阅读(156)  评论(0编辑  收藏  举报