最小割经典问题

最小割经典问题

Problem A. 最小割的最小边数

设边数为 \(m\)。将一条边 \((u,v,w)\) 的边权修改为 \(w\times (m+1)+1\),跑最小割得到答案 \(ans\)

最小割为 \(\lfloor \dfrac {ans} {m+1}\rfloor\),最小边数为 \(ans \bmod (m+1)\)

首先证明它确实是最小割:否则 \(ans\) 至少可以减少 \((m+1)-m=1\)

其次它确实是边数最小的:否则 \(ans\) 至少可以减少 \(1\)

Problem B. 最小割的可行边、必须边

引理:\(e\) 为不可行边,当且仅当存在一组最大流使其不满流。

\(e\) 在任意一组最大流中都不满流,显然 \(e\) 不可行。

否则,找到一组使得 \(e\) 满流的最大流,将 \(e\) 退流后可以找到另一条增广路。于是割掉 \(e\) 后,至少还需要割掉一条非满流边,一定不优。命题得证。

为了进行判定,首先在网络上跑出一组最大流,得到残量网络 \(G_f\)

不可行边判定定理:\(e=(u,v,w)\) 为不可行边,当且仅当满足以下两个条件之一:

  1. \(e\) 不满流,即 \(c_f(u,v)>0\)
  2. \(u,v\)\(G_f\) 中在同一个 SCC 内。

重点考虑第二个条件,不妨设 \(e\) 满流,那么 \(G_f\) 中有 \(v\)\(u\) 的边。

\(u,v\) 在同一个 SCC 内,等价于存在 \(u\)\(v\) 的路径。那么我们将 \(e\) 退流,把这些流量给这条路径,可以得到使得 \(e\) 不满流的最大流,于是 \(e\) 不可行。

可行边判定定理:\(e=(u,v,w)\) 为可行边,当且仅当以下两个条件全部满足:

  1. \(e\) 满流,即 \(c_f(u,v)=0\)
  2. \(u,v\)\(G_f\) 中不在同一个 SCC 内。

可行边是不可行边的补集。

必须边判定定理:\(e=(u,v,w)\) 为必须边,当且仅当以下两个条件全部满足:

  1. \(e\) 满流,即 \(c_f(u,v)=0\)
  2. \(G_f\) 中,\(S,u\) 在同一 SCC 内,\(T,v\) 在同一 SCC 内。

考虑将 \(G_f\) 缩点,得到一张 DAG \(G'\)。实际上,\(G'\) 是由 \(T\)\(S\) 的 DAG。

\(G'\) 有非常好的性质:\(G'\)\(T,S\) 的割与原网络的最小割一一对应。

于是 \(e\) 是必须边,等价于若不割掉 \(e\)\(T,S\)\(G'\) 中就始终联通。

所以 \(e\) 应该在 \(G'\) 中由 \(T\) 直接指向 \(S\),原网络中对应第二个条件。命题得证。

Problem C. 最大权闭合子图

给定有向图 \(G\),每个点有点权 \(w_i\)(可正可负)。找到 \(G\) 的点权和最大的导出子图 \(G'\),满足 \(G'\) 中每个点的后继也在 \(G'\) 中。

考虑网络流建模:对于点 \(x\),若 \(w_x>0\),则连边 \((S,x,w_x)\),否则连边 \((x,T,-w_x)\)。对于 \(G\) 中的边 \((u,v,w)\),连边 \((u,v,+\infty)\)\(G'\) 最大权值即为 正权值之和减去最小割。

首先网络中的割与合法的闭合子图一一对应。对于一组割,\(S\) 所在点集没有连向 \(T\) 所在点集的边,于是 \(S\) 所在点集对应一个闭合子图;一个闭合子图显然对应一组割。

我们首先选上所有的正权值点。如果要去掉某个正权值点 \(x\),就要割掉 \((S,x,w_x)\);如果要选择某个负权值点 \(x\),就要割掉 \((x,T,-w_x)\)。求出最小割,就得到了最少需要减去多少权值。命题得证。

例题:https://www.luogu.com.cn/problem/P2805

Problem D. 集合划分问题

\(n\) 个物品,划分为两个集合 \(S,T\),每个物品被划分到 \(S\) 的收益为 \(A_i\),被划分到 \(T\) 的收益为 \(B_i\)。另外,有 \(m\) 个额外限制 \((u,v,w)\),表示若 \(u,v\) 不在一个集合里就要付出 \(w\) 的代价。求最大利润。

考虑网络流建模,对每个点连边 \((S,i,A_i),(i,T,B_i)\)\(m\) 个限制连双向边 \((u,v,w)\)。答案即为 \(\sum_{i=1}^n A_i+B_i\) 减去最小割。

例题:https://www.luogu.com.cn/problem/P1361

Problem E. 切糕问题

每一个纵轴都建出 \(R+1\) 个点,连边 \(((x,y,i),(x,y,i+1),v_{x,y,i})\)\(S\) 向第一层连 \(\inf\) 的边,最后一层向 \(T\)\(\inf\) 的边。

考虑 \(D\) 的限制,拆为 \(f(x,y)-f(x',y')\leq D\land f(x',y')-f(x,y)\leq D\)

连边 \(((x,y,i),(x',y',i-D),\infty)\),可以保证若不满足性质则一定不是最小割。

Problem F. [ARC176E] Max Vector

转化一下,考虑最后的 \(X_i,Y_i\)。题目条件转化为,对于每一个 \(i\),若 \(\exists j,X_j<A_{i,j}\),那么 \(\forall j, Y_j\geq A_{i,j}\),反过来一样。

这就很像上面的切糕模型。对每个 \(X_i,Y_i\) 建出 \(V+1\) 个点,连边 \((X_{i,v+1},X_{i,v},v),(Y_{i,v},Y_{i,v+1},v)\),然后 \(S\)\(X_{i,V+1},Y_{i,1}\)\(\infty\) 边,\(X_{i,1},Y_{i,V+1}\)\(T\)\(\infty\) 边。

对于 \(X_i,Y_i\) 的初值,我们把小于初值的边的容量设为 \(\infty\) 即可。

对每个限制,建出一个新点 \(C_i\),连边 \((X_{j,a_{i,j}},C_i,\infty),(C_i,Y_{j,a_{i,j}},\infty)\)。相当于每个 \(X_{j,a_{i,j}}\) 向每个 \(Y_{j,a_{i,j}}\) 分别连边。

最后跑最小割即可。

Problem G. [ARC107F] Sum of ABS

由于 \(|x|=\max\{x,-x\}\),而最后又是取的 \(\max\),所以题意转化为:

  • 删点后,每个连通块可以选择贡献 \(-\sum b_i\)\(\sum b_i\)

我们先删掉所有点,然后一个个加点。

若点 \(x\) 选择正号,获得 \(A_x+B_x\) 的收益;否则获得 \(A_x-B_x\) 的收益。

限制只有两个:

  • 一个点只能选一个符号;

  • 若一条边的两个端点都被选择,则两个端点必须同号。

\(x\) 拆为 \(x^{-},x^{+}\),转化为二分图最大权独立集,又转化为最小权点覆盖,最小割求解。

注意到可能会有负权边,但它们对应的点不选择一定不劣,所以可以忽略。

Problem H. 最优标号

对每一位分开考虑。若一条边的两个端点标号不同,则付出 \(2^w\) 的代价,转化为集合划分问题。

若这一位已固定为 \(1\),则连边 \((S,x,\infty)\),若已固定为 \(0\),则连边 \((x,T,\infty)\),对每条边连 \((u,v,2^w)\) 的双向边,跑最小割。

继续考虑如何最小化标号之和。将残量网络缩点得到 \(T\)\(S\) 的 DAG,由 Problem B. 的结论,最小割与 DAG 的 \(T,S\) 割一一对应,所以将 \(S\) 所能到达的点标记为 \(1\) 就是最小的方案。

Problem I. 最大密度子图

二分密度 \(D\),判定是否存在一个子图满足 \(\dfrac{|E'|}{|V'|}>D\),即 \(|E'|-D|V'|>0\)

Solution 1.

将边也看为点,选择边必须选择其两个端点,选边有 \(1\) 的收益,选点有 \(-D\) 的收益。

最大权闭合子图求解。

Solution 2.

最大化 \(|E'|-D|V'|\) 即最小化 \(D|V'|-|E'|\)

\[D|V'|-|E'|=D|V'|-\dfrac{\sum_{v\in V'} deg_v-C(V',\overline{V'})}{2}=\dfrac 1 2(\sum_{v\in V'}(2D-deg_v)+C(V',\overline{V'})) \]

考虑如下建图:\(S\) 向每个点连 \(U\) 边,每个点向 \(T\)\(2D-deg_x+U\) 边,原边连 \(u,v\) 的双向 \(1\) 边,求最小割。其中 \(U\) 是保证边权非负的偏移量,取 \(m\) 即可。

考虑求出的最小割的意义:

\[||S,T||=\sum_{v\in \overline{V'}} U+\sum_{v\in V'}(2D-deg_v+U)+C(V',\overline{V'})=nU+\sum_{v\in V'}(2D-deg_v)+C(V',\overline{V'}) \]

所以只需判断是否 \(nU-||S,T||>0\) 即可。

Problem J. AT_arc161_f [ARC161F] Everywhere is Sparser than Whole (Judge)

先求最大密度子图,如果 \(>D\) 一定不合法。

现在需要求是否存在一个真子图密度 \(=D\)。但不能直接求,因为空图和原图都可以使 \(|E'|-D|V'|=0\)

所以需要判断有没有 不是割掉所有与源点相连的边,也不是割掉所有与汇点相连的边最小割即可。对残量网络缩 SCC,得到 \(T\)\(S\) 的 DAG。图合法当且仅当只有 \(3\) 个 SCC,分别是 \(S,T\) 和剩下的点。

复杂度 \(O((ND)^{\frac 3 2})\)

posted @ 2025-07-19 11:32  XP3301_Pipi  阅读(45)  评论(0)    收藏  举报
Title