首页 > 其他分享 >yb 网络流扩展

yb 网络流扩展

时间:2023-02-23 21:33:46浏览次数:51  
标签:可行 yb 扩展 网络 流量 建模 选择 即可 区间

记录一下最近新学的一些网络流的 \(\text{tricks}\) 。

上下界可行流

指需要每条边的流量在 \([L_i,R_i]\) 之间,问是否存在可行解。

无源汇

转换建图:

对于原图中一条边 \((x,y,L,R)\) ,在新图中新建三条边 \((S',y,L)\) ,\((x,T',L)\) ,\((x,y,R-L)\) 。前两条边的目的是保证下界,指除了可以随意的 \(R-L\) 这一部分,\(x\) 必须流出 \(L\) ,\(y\) 必须流入 \(L\) 。判断可行即看前两条边是否被流满即可(前两条边就是保证限制),构造方案看第三条边流量为多少。

有源汇

与前者区别是,源点和汇点可以流量不守恒,但是将其视为一个点的话也要守恒。因此在新图上连边 \((T,S,inf)\) 即可,这样就满足流量守恒了。

原图中源点汇点间最大/最小流

跑完限制之后,在参量网络上由 \(S\rightarrow T\) 或者 \(T \rightarrow S\) 进行补流或者退流即可。

最小费用可行流

建图同理,加上费用即可,只将费用放在前两条边中的一条即可。

一个建图的优化

考虑每个点会向新图中的源点/汇点连很多条边,考虑将其缩为一条。缩边之后的容量为其原先容量总和,费用的话直接在外面加上就行,再将其费用设为 \(0\) 。因为如果存在可行流,这样的边必然流满。

建模

建模颇难

可行流的建模通常用于一类,并不单纯要求最大匹配,可以满足某些边必须要选/必须要选多少等一些以限制。

比如 ABC287G - Tatami 这题,要求 \(2\) 的边必须要被流,\(0\) 的边任意,单纯的最大流并不方便满足,而上下界可行流却能够很好的实现。

区间选择模型

概述

给定一个序列,有一些区间,你可以选择每个区间若干次,需要满足的限制是每个点被选择的区间覆盖恰好 \([L_i,R_i]\) 。

解法

先拉一条 \(1-n\) 的链,连边 \((i,i+1)\) ,区间 \([L,R]\) 连边 \((L,R+1)\) ,这样的意义是“抢”走了区间 \([L,R]\) 每一个点流过的一点流量。

再来考虑满足每个点的限制,假设最大流为 \(X\) ,每个点流过的流量为 \(f_i\) ,则 \(X-f_i\) 就是 \(i\) 点被覆盖的次数,因此需要满足 \(f_i\in[X-R_i,X-L_i]\) ,在区间选择模型中,最大流可以 直接钦定 ,我们取 \(X=R_i\) ,则 \((i,i+1)\) 这条边的容量就是 \(R_i-L_i\) 。

建模

模型容易,找区间太难。如何将题目转化成这个模型需要经验的积累。

P6967 [NEERC2016]Delight for a Cat

先钦定都选择睡觉,选择将一个点 \(i\) 改为吃饭,影响的是右端点在 \([i,i+k-1]\) 中的区间。考虑将区间的限制保存在右端点上,选择更改点就是选择区间覆盖,然后套用模板即可。

一些点/区间限制与次数相关可以考虑这个模型。

标签:可行,yb,扩展,网络,流量,建模,选择,即可,区间
From: https://www.cnblogs.com/oscaryangzj/p/17149518.html

相关文章