[复习] 最大权闭合子图

镜像博客

以下均认为「收益」为正的贡献,「代价」为负的贡献。

为方便表述,称 \(b_i=1\) 的点被选了,反之没被选。

简介

每个点可以选或不选,存在一元/二元/多元的收益/代价,满足特定条件时,可以跑网络流。

模型描述

有向带权图 \((V,E)\),你可以给点 \(i\) 分配布尔权值 \(b_i\in \{0,1\}\)

对于点 \(u\),若 \(b_u=1\) 则你获得其点权 \(a_u\) 的收益;对于有向边 \((u,v,w)\in E\),若 \(b_u=1\land b_v=0\),你会付出 \(w\) 的代价。

最大化你的贡献。

解法

保留原图中所有的边,新建源点 \(s\) 与汇点 \(t\)

对于每个点 \(i\),若 \(a_i>0\) 则加入边 \((s,i,|a_i|)\),否则加入边 \((i,t,|a_i|)\)

对该图跑最大流,令答案为 \(ans\),则原问题答案为 \(\left(\sum_{a_i>0}a_i\right)-ans\)

正确性

不妨残量网络上,与 \(s\) 连通的点集为 \(S\),与 \(t\) 连通的点集为 \(T\)。断言 \(\forall i\in S\)\(b_i=1\)\(\forall i\in T\)\(b_i=0\)

则最小割由且仅由三部分组成:

  • \(a_i>0\land i\in T\),此时会割开与 \(t\) 的连边;
  • \(a_i\leq 0\land i\in S\),此时会割开与 \(s\) 的连边;
  • \(u\in S\land v\in T\) 时有 \((u,v,w)\in E\),此时隔开 \((u,v,w)\)

由此易知解法正确性。

二元关系

列举所有二元关系的建图方式。

可建图

对于一般图,以下二元关系同时出现也均可用最大权闭合子图描述。

\(b_u=1\land b_v=0\) 有代价 \(w\)

模型上述。

\(b_u=1\land b_v=1\) 有收益 \(w\)

建立新点 \(x\),令 \(a_x=w\) 并连边 \((x,u,\infty),(x,v,\infty)\)。意义是选 \(x\) 则必选 \(u,v\);而 \(u,v\) 被选时由于 \(x\) 正权,选择 \(x\) 一定更优。

\(b_u=0\land b_v=0\) 有收益 \(w\)

建立新点 \(x\),令 \(a_x=w\) 并连边 \((u,x,\infty),(v,x,\infty)\)。意义是选 \(u,v\) 中的一个则必不选 \(x\);而 \(u,v\) 不被选时由于 \(x\) 正权,选择 \(x\) 一定更优。

注意:同时出现 ②③ 时不认为两条件等价。

试看看:P4313 文理分科

不可建图

对于一般图,以下二元关系出现其一则不可用最大权闭合子图描述。

\(b_u=1\land b_v=1\) 有代价 \(w\)

\(w=+\infty\),规约一般图独立集。

\(b_u=1\land b_v=0\) 有收益 \(w\)

\(a_u:=a_u+w\) 后等价于上一种。

伪不可建图

出现不可建图的模型时,其往往不为一般图而是二分图,此时便可翻转限制解决。

具体做法:将点黑白染色,使任意一条 ④⑤ 限制的两端点不同色。将所有白点权值取反,将所有限制中的白点限制取反,造成的差价初始时累加进贡献。

试看看:CF311E Biologist

疑问:若图中既存在可建图二元关系,又存在不可建图二元关系,且不能通过翻转限制解决,那我也不知道怎么办!不知道有没有高明的办法 =.=

二元关系(或)

或的二元关系和与的二元关系只是补集转化的关系而已。举个例子:

\(b_u=1\lor b_v=1\) 有代价 \(w\)

这个二元关系不成立,当且仅当 \(b_u=0\land b_v=0\)。所以直接给答案累减去 \(w\),就转化为了其补集 ③。

试看看:AT5203 [AGC038F] Two Permutations,但需要一定转化。

多元关系

懒得写了!自己讨论去。

posted @ 2022-08-04 21:27  Ilith  阅读(58)  评论(0编辑  收藏  举报