ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【集训】ZR集训——图论(2)

2026/8/12 18:34:51 拓冰建站 浏览量
【集训】ZR集训——图论(2)

8.12

匹配

概念

1

设一般无向图 𝐺 = (𝑉 , 𝐸)。匹配 𝑀 ⊆ 𝐸 中任意两条边没有公共端点。

交错路:匹配边和非匹配边交错

增广路(匹配图):两端不匹配的交错路

增广路(Dinic):在“当前残量网络”中,从源点 S 到汇点 T 的一条路径,并且路径上的每一条边都必须严格满足“剩余容量 > 0” 且 “层级(Level)逐层 +1

两个定义本质相同,匹配里的增广路,是“去掉 S 和 T 后,将容量全设为 1 的残量网络增广路”。

沿增广路把“匹配/非匹配”取反,内部点仍恰好关联一条匹配边,两端由未匹配变为已匹配,因此 |𝑀| 增加 1。

2

一条关于 M 的增广路 P,必须同时满足以下 3 个条件:

条件1:这条路的起点和终点,在当前的匹配 M 中,都必须是尚未匹配的顶点

条件2:这条路上的边,必须是“未匹配边 -> 匹配边 -> 未匹配边 -> 匹配边……”这样交替出现的。

条件3:因为路径两端的边都是“未匹配边”,所以这条路上未匹配边的数量,永远比匹配边多 1 条,整条路径的边数一定是奇数。

引理

匹配的对称差:两个匹配的对称差等于他们的边集的异或

  • 其每个连通分量都是 𝑀, 𝑀′ 边交替的路或偶环。

  • 环与首尾分属 𝑀, 𝑀′ 的交错路中,两类边数相同;

  • 首尾均为 𝑀′ 边时 𝑀′ 边多一条,首尾均为 𝑀 边时反之。

Berge 引理:匹配 𝑀 最大,当且仅当不存在关于 𝑀 的增广路。

定理

柯尼希定理:二分图的最大匹配大小等于最小点覆盖大小。

算法

匈牙利(kuhn)算法

求解二分图最大匹配问题

暴力找增广路,翻转

优势在于写法简单 \(O(EV)\)

HK(Hopcroft-Karp)算法

分层图加速匈牙利

比Dinic常数小一点,都是 \(O(E\sqrt V\)),但是其写法和Dinic惊人相似,本质是一个算法

KM算法(❌️)

求解二分图最大权匹配,不建议用网络流替代,会很慢

KM 算法:复杂度是 O(n³)。

替代品(最小费用最大流):在稠密图(带权匹配通常是完全二分图)中,复杂度约为 O(n³ log n) 甚至 O(n⁴)(取决于具体实现,如 SSP 增广路算法)。

偏序集最长反链(两两不可比较)

有限集合 𝑃 上的关系 ≼ 若满足自反、反对称、传递,则称 (𝑃, ≼)
为偏序集;记 𝑢 ≺ 𝑣 表示 𝑢 ≼ 𝑣 且 𝑢 ≠ 𝑣。
链中的元素两两可比较,反链中的元素两两不可比较。链划分要求
每个元素恰属于一条链。

Dilworth定理:有限偏序集的最长链大小等于最小链划分大小。

Hall定理

Hall定理:二分图 𝐺 = (𝑋, 𝑌 , 𝐸) 存在 𝑋 的完美匹配,当且仅当任意 𝑆 ⊆ 𝑋 都满足|𝑁(𝑆)| ≥ |𝑆|.

缺陷Hall定理:义缺陷 def(𝑆) = |𝑆| − |𝑁(𝑆)|.最大匹配覆盖的左部点数满足 \(|𝑀∗| = |𝑋| − max_{𝑆⊆𝑋}def(𝑆).\)

P14598:如果左部点若干集合独立,可以分别求解再相加

带权hall定理:

网络流

杂七杂八

可行流即满足三大约束(容量限制,流量守恒,斜对称性)的流

流网络->流矩阵
残量网络->残量矩阵
网络与矩阵满足双射关系,故可以从矩阵角度分析网络流

增广路径定理(引理)

  • 残量流叠加引理:原始网络中的一个合法流 \(f\),加上其残留网络 \(G_f\) 中的任意一个合法流 \(g\),叠加后仍然是原始网络 \(G\) 中的一个合法流。

  • 残量路径增广引理:\(𝑝_𝑃\) 是流值为 \(𝛿\) 的可行残量流;因此 \(𝑓 + 𝑝_𝑃\) 是可行流,且 \(|𝑓 + 𝑝𝑃 | = |𝑓| + 𝛿\)

以上引理引出了网络流算法

  • 增广路判定定理:可行流 𝑓 是最大流,当且仅当其残量网络不存在 𝑠-𝑡 路径。

  • 最大流最小割定理:最大流值等于最小割容量。

流分解

流分解定理:任意满足 \(|𝑓| ≥ 0\) 的可行流 \(𝑓\) 都能分解成若干条总流量为 \(|𝑓|\)\(𝑠-𝑡\) 路径流与若干循环流

循环流是指不与s和t链接的可行流,它满足三大限制,但是对于最大流算法无用,所以dinic给他忽略了,但是客观上是存在的

增广路径是合成,而流分解是拆分

平面图与最小割

  • 平面割与对偶路径定理:原图最小 \(𝑠-𝑡\) 割的容量等于对偶图中 \(𝑠∗\)\(𝑡∗\) 的最短路长度。

最小割树

非常好教程

最小割树定理:对于任意一个带非负权重的无向图 G,都存在一棵带权树 T(即Gomory-Hu树),使得树 T 上任意两点间路径上的最小边权,等于在原图 G 中这两点间的最小割值

最小割树收缩引理:若 \(cut(u,v)\) 将图分为 \(U\)\(V\) 两部分,则任意 \(x \in U, y \in V\)\(|cut(x,y)|<=|cut(u,v)|\)

Gomory–Hu 构造定理:在一张图上选取(u,v)跑网络流,最小割权值作为边权,将图割开,分治(表述不太规范)。

割等价性:对于树上的两点u,v,他们的最小割是他们之间简单路径的最小路径权值。

Dinic

阻塞流:当前分层图下的局部最大流

时间复杂度 \(O(V^2E)\),这是一个很松的上界

\(V≥5000\)\(E≥10000\) 时,心里要敲一下警钟,考虑一图是不是太密了;但如果 \(V≤1000\),无论怎么建图,Dinic 都能轻松拿下。

Dinic二分图匹配复杂度为 \(O(E\sqrt V)\)

费用流

SSP+SPFA

\(O(n*m*f)\)

SSP+Dijkstra(Primal-Dual 原始对偶算法)

这是SPFA的优化版本,通过势能(Potential)函数将负权边转为非负,从而使用更快的Dijkstra算法

\(O(f * m * log n)\)

模拟费用流

模拟费用流AGC034D:即模拟费用流过程,优化边数

EX

点覆盖与独立集

互补性:一个点集是点覆盖,当且仅当它的补集是独立集。

极值对偶性:最小点覆盖的补集,一定是最大独立集。