ARC204 A,B
ARC204 A,B
Problem A. A - Use Udon Coupon
\(Q\) 实际是一个每时每刻都非空的队列。
我们把 \(C\) 的变化看做折线,先不管取 \(\max\),最终会到达 \((n,\sum B-\sum A)\)。然后把 \(y\) 轴下面的部分平移上来,发现总平移量就是折线的最低点的绝对值,设为 \(K\)。那么 \(C=\sum B-\sum A+K\)。
答案差分为 \(f(R)-f(L-1)\),求解 \(f(X)\) 时要求当前的 \(\sum A-\sum B\le X\) 成立即可。\(O(n^2)\)。
Problem B. B - Sort Permutation
操作次数为 \(nk\) 减去置换环个数。置换环间独立,对每一个单独考虑。
在一个环里,一个操作序列合法的充要条件是其对应了一棵只在端点处相交的树。必要性显然,充分性考虑找到树上的一条边 \((x,x+1)\),若 \(x+1\) 是叶子就先交换,若 \(x\) 是叶子就最后交换,问题规模缩小至 \(n-1\),继续做。
破环为链,区间 dp,\(f_{l,r}\) 表示 \([l,r]\) 的答案,转移枚举 \(l\) 最右边一条边,\(f_{l,r}\leftarrow f_{l,p-1}+f_{p,r}+(a_l\equiv a_k\pmod{n})\)。
直接做 \(O(n^3k^3)\),考虑优化。造成贡献的 \((l,p)\) 很少,所以我们枚举 \(l\) 最后一个造成贡献的 \(p\),\(p\) 只有 \(O(k)\) 个。若 \(l\) 不造成贡献直接从 \(f_{l+1,r}\) 继承。优化为 \(O(n^2k^3)\)。

浙公网安备 33010602011771号