二分图
引入
节点由两个集合组成,且两个集合内部没有边的图。
二分图不存在长度为奇数的环。
模型
二分图最大匹配
用匈牙利算法或网络流。
换算成网络流,
二分图最大匹配 = 最大流。
二分图最小点覆盖
König 定理:
最小点覆盖:选最少的点,满足每条边至少有一个端点被选。
最小点覆盖 = 最大匹配。
换算成网络流,
最小点覆盖 = 最小割。
最小割 = 最大流。
二分图最大独立集
最大独立集:选最多的点,满足两两之间没有边相连。
最大独立集 = 点数 - 最小点覆盖。
换算成网络流,
最大独立集 = 点数 - 最小割。
应用
P1129 [ZJOI2007] 矩阵游戏
考虑有 \(n\) 行,每行第 \(i\) 个是黑色。
考虑二分图最大匹配,把每行能放的位置建边。
P7368 [USACO05NOV]Asteroids G
考虑每个小行星都需要至少选了所在行或所在列。
这是一个最小点覆盖问题。
把横轴和竖轴分成二分图左边与右边,若 \((x,y)\) 有小行星,\(x\rightarrow y\) 加边。
P2423 [HEOI2012]朋友圈
这是求最大团,转化为补图的最大独立集。
补图刚好是二分图。