图论建模问题

本文将不定期更新


图论建模

行列二分图

给一个二维平面,建立二分图,左部点编号为横坐标,右部点编号为纵坐标,平面上一个点即为二分图上一条边。

CF1140F Extending Set of Points

建立行列二分图,把每一个点看成一条边,则题述操作会将一个连通块变为完全二分图。使用线段树分治+并查集即可解决问题。

网络流建模

Hall 定理

对于一个二分图,设其左部点集合为 \(S\),右部点集合为 \(T\),边集为 \(E\),设 \(f(V)=\{v\in T\mid\exists u\in V,(u,v)\in E\}\)(即 \(V\) 的邻域),则该二分图最大匹配为 \(|S|-\max(\max\limits_{V\subseteq S}\{|V|-|f(V)|\},0)\)。

证明:

根据最大流最小割定理,设左部点没有匹配的集合为 \(V\),则 \(f(V)\) 均应被割掉,此时的割大小为 \(|S|-|V|+f(V)\),对所有 \(V\) 取 \(\min\),即可得到 \(|S|-\max(\max\limits_{V\subseteq S}\{|V|-|f(V)|\},0)\)。

OIFC NOIP2025集训 北师大实验 Back to Basics

原题 P9104 [PA 2020] Królewski bal

做法来自 wchengk09。

设蓝点集合为 \(B\),红点集合为 \(R\),第 \(i\) 行红点数量为 \(row_i\),第 \(i\) 列红点数量为 \(col_i\)。

首先不难想到建立二分图求最大匹配。考虑 Hall 定理,我们要找到一个蓝点集合 \(V\subseteq B\),最大化 \(|V|-|f(V)|\)。若 \((x1,y1),(x1,y2),(x2,y1)\in V\) 且 \((x2,y2)\in B\),则将 \((x2,y2)\) 加入 \(V\) 一定不劣,因此最优的 \(V\) 一定满足存在行集合 \(X\),列集合 \(Y\),使得 \(V=\{(x,y)\in B\mid x\in X,y\in Y\}\)。

考虑固定 \(X\),则所有同行的红点贡献即为 \(\sum\limits_{i\in X}row_i\)。当加入一列 \(j\) 时,答案的变化量为

\[\begin{align*} \Delta &= \sum\limits_{i\in X}[(i,j)\in B]-\sum\limits_{i\notin X}[(i,j)\in R] \\ &= \sum\limits_{i\in X}[(i,j)\in B]+\sum\limits_{i\in X}[(i,j)\in R]-\sum\limits_{1\le i\le n}[(i,j)\in R] \\ &= |X|-col_j \end{align*} \]

则对于固定的 \(X\),答案为 \(\sum\limits_{i=1}^n\max(|X|-col_i,0)\)。

注意到上式只与 \(|X|\) 有关,考虑枚举 \(i=|X|\),则答案为

\[\max\limits_{i=1}^n\{-sum_i+\sum\limits_{j=1}^n\max(i-col_j,0)\} \]

其中 \(sum_i\) 为前 \(i\) 小的 \(row\) 之和,扫描线维护上式即可。

CF2165D Path Split

不难想到建模为最小连覆盖,转为 \(n\) - 拆点二分图上最大匹配。每个点 \(i\) 向满足 \(j>i\) 且 \(|a_i-a_j|=1\) 的 \(j\) 连边,建拆点二分图。关键在于想到使用 Hall 定理,把值域分奇偶 \(\mathcal{O}(\sum cnt_i)\) 做一下优化 DP 即可。

最小割模型

OIFC NOI2023省队集训 三分网络

划分点集问题,想到转最小割。

把原图上点 \(u\) 拆成 \(u\) 和 \(u'\),把原图上边 \((u_i,v_i)\) 拆成 \((u_i,v_i')\) 和 \((v_i,u_i')\),边权均为 \(w_i\)。根据 \(u\) 和 \(u'\) 在割的哪侧可以产生 \(4\) 种状态,不少于我们需要的类数 \(3\)。

考虑最小割 \((S,T)\) 上 \(u\) 和 \(u'\) 所在集合:

  1. \(u\in S,u'\in T\),令这样的点划分进 \(A\)。
  2. \(u\in T,u'\in S\),令这样的点划分进 \(B\)。
  3. 其余情况,令这样的点划分进 \(C\)。

除 \(C-C\) 类边外,其他边都已满足要求。仔细考虑一下,\(C-C\) 类边真的不满足吗?其实也满足要求,因为如果 \(C-C\) 类边产生了 \(2w_i\) 的贡献,必然可以调整使得贡献变为 \(0\)。

连接 \((s,a,+\infty),(a',t,+\infty),(b',t,+\infty),(s,b,+\infty)\),跑最大流即可。

欧拉路径/回路建模

通过加边的方式,可将欧拉路径转为欧拉回路。

关于有向图欧拉回路判据:图连通只要求在无向意义上连通,在保证度数的前提下,只需满足这样的“弱连通性”即可证明存在欧拉回路。

???+ 证明

由强连通性+度数限制推欧拉回路是容易的,考虑证明若保证了度数限制且满足“弱连通性”,则有强连通性。

反证法,在上述条件下,若图没有强连通性,则缩点,考虑零出度 scc,其整体的入度出度显然是不平衡的,故内部的点入度出度不可能都平衡,矛盾。

???-

给定必经边求最短路

把必经边加入图中,问题可变为,另外加入尽量少的边,使得图中存在欧拉路径。

例题(题解):P6628 [省选联考 2020 B 卷] 丁香之路,P6168 [IOI 2016] railroad,OIFC 260123 T3。

posted @ 2025-11-16 13:57  SmpaelFx  阅读(34)  评论(0)    收藏  举报