图论建模问题

本文将不定期更新


图论建模

行列二分图

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

CF1140F Extending Set of Points

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

网络流建模

Hall 定理

对于一个二分图,设其左部点集合为 \(S\),右部点集合为 \(T\),边集为 \(E\),设 \(f(V)=\{v\in T\mid\exist 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

据说有原题,没找到。

做法来自 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\) 之和,扫描线维护上式即可。

最小割模型

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)\),跑最大流即可。

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