YC282B [ 20240430 CQYC省选模拟赛 T2 ] 温柔(gentle)

题意

\(n\) 个魔法少女,每个魔法少女的法力为 \(a_i\),她们要打败 \(n\) 个法力为 \(b_i\) 的怪兽!

你需要构造 \({c_n}\),使得对于给定的 \(m\) 组限制,满足:\(c_x \ge b_x \land c_y \ge b_y\)\(c_y \ge b_x \land c_x \ge b_y\)

你需要 \(\sum_{i = 1} ^ n |c_i - a_i|\),并输出这个值。

Sol

集中注意力,考虑每一组限制。

不难发现显然有 \(c_x \ge \min(b_x, b_y) \land c_y \ge \min(b_x, b_y)\)

若当前 \(a_i\) 不满足该限制,直接加上即可。

考虑当前的限制,钦定 \(b_x \le b_y\)

注意到对于 \(a_x\) 来说,发现只有两种情况。

要么她本身满足 \(a_x \ge b_x\),要么由她所有限制的 \(y\),满足 \(a_y \ge b_x\)

接下来就很简单啦!

考虑最小割,对于 \(a_x \to a_x + 1\),直接套广义切糕模型即可。

具体地,设二元组 \((i, j)\) 表示第 \(a_i\) 加了 \(j\) 的贡献点。

  • \((i, j) \to T\),容量 \(1\)

  • \((i, j) \to (i, j - 1)\),容量 \(inf\)

枚举 \(\forall i \in [1, n]\),对于所有 \(x = i\) 的限制 \(y\),连接:

  • \(S \to i\),容量 \(h_x - s_x\)
  • \(i \to (y, h_x - s_y)\),容量 \(inf\)

跑一遍最大流即可。

复杂度:\(O(MaxFlow(nV))\)

posted @ 2024-05-08 16:02  cxqghzj  阅读(8)  评论(1编辑  收藏  举报