首页 > 其他 > 详细

「SDFZ听课笔记」二分图&&网络流

时间:2018-10-02 22:55:34      阅读:182      评论:0      收藏:0      [点我收藏+]

二分图?

  • 不存在奇环(长度为奇数的环)的图
  • 节点能黑白染色,使得不存在同色图相连的图

这两个定义是等价哒。

直观而言,就是这样的图:

技术分享图片

二分图有一些神奇的性质,让一些在一般图上复杂度飞天的问题可以在正常时间得到解。(这就是我们研究它的原因鸭!)

 然后是一些可能会用到的定义(确实用到了 还搞得人一头懵逼QAQ

  • 匹配:图中边的一个子集,使这些边没有公共顶点。

当边数最大化的时候,称这个边集为一组最大匹配。

  • 独立集:图中点的一个子集,使点的导出子图中不存在边。

人话:选一些点,使得中间任意两个点之间没有边

  • 覆盖:点的集合,使每条边至少跟子集中一个点关联。

人话:让图中的每条边至少有一个顶点在集合里。

  • 支配集:一个神奇的点集,使每个点要么处于集合之中,要么和集合中至少一点关联

(被支配的恐惧

才讲完预备知识!惊不惊喜?!意不意外?!

求匹配的算法:

  • 匈牙利算法

时间复杂度$O(NM)$,空间用邻接矩阵是$O(N^2)$,可以用邻接表优化。

我吹爆这个教会了我们全组的教程!!!

  • Dinic

时间复杂度$O(m\sqrt{n})$。

比匈牙利难码难理解,但是应用范围广多了(最大流算法

(会了这个还学什么匈牙利

———————————————————————————

—这里有一大段不知所云感觉没什么luan用的Hall定理—

———————————————————————————

König 定理

这个名字上风骚的两点让人忍不住觉得naïve。

这个定理就是讲了二分图的最大匹配最大独立集最小覆盖之间的关系。

首先设图的点数为N,最大匹配的大小为C

那么有最小覆盖=C最大独立集=N-C

证明:

首先我们知道最小覆盖和最大独立集是对偶问题。

(把最小覆盖的点删掉,剩下来的就是最大独立集啦

然后就只要证明最小覆盖=最大匹配

不证了,当结论记叭。(懒

其实是不会证。

EG1

有一个$n*m$的棋盘,其中有一些格子里有怪。

每次操作,可以选择一行或一列攻击,消灭这一行/列的所有怪。

求最少需要几次打掉所有怪。(1e5)

首先建一个二分图,左边$n$个点,代表行;右边$m$个点,代表列。

设这个怪所在的坐标为$(i,j)$,则把左边第$i$个点和右边第$j$个点连起来。

然后求一个最小覆盖就行啦。

EG2

有一个$n*m$的棋盘,其中有些格子放了马。

你要去掉一些马,使它们不能相互攻击。

求留下的马的最大值。(1e5)

因为马走日,所以如果两个格子能够相互攻击,也就意味着这两个格子不同色。

所以冲突必然在黑白两色之间。(阴阳之战,一触即发!

建二分图,一边黑,一边白,如果冲突就连边。

最后求最大独立集就行了。

——————To be continued——————

14/40 怎么还有这么多张PPT?!!!(气哭

「SDFZ听课笔记」二分图&&网络流

原文:https://www.cnblogs.com/qwerta/p/9738698.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!