网络流基础模型小记 Ⅰ

这篇博客主要记录我这周学习网络流基础的心得,有一些基本的模型。

二分图、DAG、无向图 上的那些经典模型可能会放在之后的博客。咕。

技巧

1. 拆点、点边互化

我理解的拆点指:拆成入点和出点;原图边为出点向入点,点内边为入点向出点,入点出点分别连源汇或汇源。

拆点可以将入点和出点看做二分图的两部分,也可以不看成二分图。

流量限制(割:割去的代价)

流量限制(上限 / 下限 / 上下界)针对边,拆点、点边互化对点限制。

例如:拆点限制点的经过次数、数轴区间模型中点边互化可以限制两边中间的点。

拼合路径

DAG 最小路径覆盖及变种。出点作为左部点,入点作为右部点,形成二分图。

若路径起点需要额外费用,则由源点向入点连边,跑费用流。

2. 按费用拆点、拆边

通常是每次经过的费用不同,比如“修车”中的“师傅点”,又如边“第一次经过”才有贡献。

此时可以按费用的不同拆成不同的点和边。

通常费用流的贪心会保证正确性,而手动贪心可以动态加边加点减小网络规模(存疑)。

3. 动态加边加点

流量和费用在过程中累加(比如 Dinic() 的结果累加)。

第一种:见 \(2\) 中内容,这样贪心不会破坏费用流凸性(存疑),就不会生成负环(存疑)。

第二种:伴随枚举。如:“魔术球问题”。

4. 绑定(割)

建权值为 \(\inf\) 的边。

5. 求一方案

通常会在跑完网络流的图上考虑,判断边是否未流过/是否流经/是否满流。

对于最小割,要分别从 \(S,T\) 出发染两种颜色,从而定下关键割边(颜色 \(S\to T\))。(存疑)

模型——流

1. 流模拟路径

用流模拟多条路径,源点连起点,终点连汇点,流量限制途径路径条数。

通常需要精细分析点、边经过次数的限制,从而正确地赋流量,否则可能需要进行一些奇怪的特判。也许有时网络流和题目要求不符,不得不特判。

2. 激活流量

本质:流模拟路径。

即向某个点通入流后,它会激发出某大小的流。同时要求每个点都被经过。

  1. 对每个点建立流量供应点,先从源点输送对应大小的流。直接用这些流去更新其他点,并限制每个点都被经过。唯一的问题是自己的流激活自己,此时要求无环(DAG),由题目保证或缩点。若拆点,则流量供应点连向出点

  2. 可以搭配“强行激活”的操作,即用本该被激活的流“走到自己”。若拆点,则流量供应点连向入点

也就是说我们当成所有流一开始就被激活了,但是真正应当被激活的流量无法满足“走到”的限制;强行激活可以走到自己。

限制的方式

  • 不吞流量:拆点,用点内边限制。
  • 吞流量:不拆点,用到汇点的边限制(针对这吞掉的流量)。

例题:P2469 [SDOI2010] 星际竞速D. For the Emperor!。前者不拆点(用点到汇点的边限制,即用最大流限制;从流量供应点连向原图边所连向的点),后者的题解(正确性存疑):link

另外,如果激活的流量都是 \(1\) 且 每个点吞 \(1\) 的流量,这其实就是 DAG 最小路径覆盖(或其变种),如前一道例题(此题可以用“激活流量”、“拼合路径”两种方式理解)。

3. 区间覆盖

本质:流模拟路径。

二种模型的思想都是用流模拟覆盖,想象一下流沿数轴从左向右推进的过程。

区间路径划分(区间集合划分)

不交区间之间连边,限制路径数,用流模拟选择路径

数轴区间

可以看做前者的优化。建出数轴,区间表示为数轴上的额外连边。数轴上的流量表示未被覆盖,区间上的流量表示覆盖次数。若限制多个区间的流量和较难,不妨转化为数轴上流量的限制。

对于开区间可以直接连边,对于闭区间点边互化为开区间。可以离散化。

  • 覆盖次数 \(\leq\) 的限制:限制总流量。
  • 覆盖次数 \(\geq\) 的限制:限制数轴上的容量。

4. 自动机

本质:流模拟路径。

基于自动机建图跑网络流,自动机:字符串或 DP(对 DP 的有效转移建自动机)。

例题:P2766 最长不下降子序列问题

5. 流量平衡

即用流量模拟运输(可以就是流量的运输),对于要运出 \(x\) 的点 \(u\),连边 \((S\to u,x)\);对于要运入 \(y\) 的点 \(v\),连边 \((v\to T,y)\),即容量为需要的减量/增量。

原图边正常建,容量根据意义定。可以加费用。

或许也可以通过数学式子建模

模型——割

最小割的建模和网络流关系不大,但实现和求方案都和网络流密切相关。

技巧:绑定即建权值为 \(\inf\) 的边,表示无法切断;否则可以切断。

二集合划分。

1. 连通性

割掉边有代价,有的边不能割。要求 \(S,T\) 不连通,求最小割。

注意边是有向边还是无向边。(非常存疑)

平面图最小割

等于对偶图最短路

这里的对偶图和通常的不一样,外围的平面是分开的。(没仔细想,存疑)

割断路径

即处理“不存在某种路径”的限制。

让可能作为路径开头的点连源点,可能作为路径结尾的点连汇点,路径中的点正常连边。

使用要求:每条源点到汇点的路径和每条不能存在的路径一一对应(或许可以在特殊情况下放宽:错解不优)。因而常与同余染色相结合。

2. 贡献取舍

通常是:最大贡献 \(=\) 总贡献 \(-\) 最小割。

要将贡献的加减转换成二集合划分,就需要找到类似二分图的结构(关系)。

这一部分内容较为灵活和巧妙。(也许)

黑白染色

两种理解:二分图染色、\(\bmod 2\) 同余染色。

打包奖励

“奖励模型”,特征为“且”(若干点划分进同一某集合)才有贡献。此时让它们和一个奖励点绑定,奖励点再按点权连源点或汇点即可。奖励贡献也先加进 sum

经典例题:“文理分科”。

2025.6.5

posted @ 2025-12-11 11:48  FirCone  阅读(2)  评论(0)    收藏  举报