题意
有 \(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))\)。
标签:land,YC282B,容量,省选,gentle,ge,限制,inf From: https://www.cnblogs.com/cxqghzj/p/18180078