[ARC107F] Sum of Abs

首先将所有方案中 $\vert\sum B_i\vert$ 和最大转化成 $\max(\sum B_i,-\sum B_i)$。

于是问题转化成了,每个点可以选择以 $B_i,-B_i,-A_i$ 计入贡献,对于之间有边的一对点 $(u,v)$,要么 $u$ 以 $-A_u$ 或 $v$ 以 $-A_v$ 计入贡献(被删掉),要么同时以 $B_u,B_v$ 或同时以 $-B_u,-B_v$ 计入贡献。

这是一个类似最大权独立集的问题。考虑转化为最小割模型,将点 $u$ 拆为 $u_+,u_-$,源 $S$ 向 $u_+$ 连边,$u_-$ 向汇 $T$ 连边。

源 $S$ 向 $u_+$ 的边不被割表示 $u$ 以 $B_u$ 计入贡献,$u_-$ 向 $T$ 的边不被割表示 $u$ 以 $-B_u$ 计入贡献,两条边都被割表示 $u$ 以 $-A_u$ 计入贡献。为了保证两条边不会都不被割,需要连边 $(u_+,u_-,+\infty)$;同理,对于之间有边的一对点 $(u,v)$,需要连边 $(u_+,v_-,+\infty)$ 和 $(u_-,v_+,+\infty)$。

对于某个点 $u$,设 $S$ 到 $u_+$ 的边权为 $x$,$u_-$ 到 $T$ 的边权为 $y$,$u$ 的贡献为 $z$ 减去最小割中连向 $u_+$ 的和从 $u_-$ 出发的容量,联立三种情况得

$$\displaylines{\begin{cases} z-y=B_u\\ z-x=-B_u\\ z-x-y=-A_u \end{cases} }$$

解得

$$\displaylines{\begin{cases} x=A_u+B_u\\ y=A_u-B_u\\ z=A_u \end{cases} }$$