最大权闭合子图 学习笔记

定义

一个有向图中,每个点有点权\(w_i\)(可负)

现在需要找到一个子图,满足:

  • 对于所有边\((u,v)\),点\(u\)在子图中则\(v\)必在子图中
  • 子图的点权和最大

这个子图就是最大权闭合子图

解法

我们先给出最大权闭合子图的解法,之后给出证明

最大权闭合子图可以用最小割解决:

  • 对于\(w_i\gt 0\)的点\(i\),连边\((S,i,w_i)\)
  • 对于\(w_i\lt 0\)的点\(i\),连边\((i,T,-w_i)\)
  • 对于原图边\((u,v)\),连边\((u,v,\infty)\)

答案就是所有正点权之和-最小割

证明

考虑以下两个命题:

  • 最小割一定是简单割
    • 简单割就是只割与\(S\)\(T\)相连的边
    • 显然成立,因为原图边都是无穷大
  • 简单割与闭合子图一一对应
    • 闭合子图和\(S\)构成集合\(V_S\),其余点和\(T\)构成集合\(V_T\)
    • 下面是一个示例,\(V_S=\{S,2,4,5\}\)
    • 证明略

那么最大权闭合子图的权\(W\)=\(V_S\)中正点权和-\(V_S\)中负点权的绝对值和

最小割\(c(S,T)=\)\(V_T\)中正点权和+\(V_S\)中负点权的绝对值和

则有\(W+c(S,T)=\)所有正点权之和

就是前面说的\(W=\)所有正点权之和\(-c(S,T)\)

例题

  • BZOJ1497 最大获利
  • BZOJ1565 植物大战僵尸
  • BZOJ4873 寿司餐厅