Sum of Abs

题目大意

NN 个点 MM 条边的无向图,每个点有两个权值 AiA_iBiB_i。可以用 AiA_i 的代价删除第 ii 个节点。并删除与这个点相连的边。

一个极大连通块的权值定义为 BiB_i 的权值和的绝对值。 删除一些节点后,收益定义为所有极大连通块权值之和减去代价和,求最大的可能收益。

思路

对于这种不是被割掉就是产生贡献的题目,考虑使用网络流。

将点 ii 拆成 ii'ii'' 分别表示没有被删除的点 ii 造成了 bib_i 或者 bi-b_i 的贡献。

SSii' 连一条流量为 aibia_i-b_i 的边 ,如果这条边被割了就代表这个连通块内的取的是 bib_i;反之,如果 ii''SS 连的流量为 ai+bia_i+b_i 的边被割了,那么就代表这个连通块内取的是 bi-b_i 。特别的,如果 SSii'ii''TT 的边都被割了,那么就代表 ii 被删除了。

显然一个点 ii 不可能在同时造成 bib_ibi-b_i 的贡献,所以我们将 ii'ii'' 之间连一条流量为 infinf 的边,这样就保证 ii'ii'' 之间肯定有一个点和 SSTT 的连边被割断。

对于一条边 x,yx,y,考虑连两条权值为 infinfxyx’\to y''yxy'\to x'',这样就保证了 bxb_xbyb_y 在取值是必须同时乘 1-1 或者保持原样。

所以最终的答案就是 i=1naiMaxFlow\sum\limits_{i=1}^{n}a_i-\operatorname{MaxFlow},时间复杂度为 O(n3)O(n^3)

Submission #55848640 - AtCoder Regular Contest 107