ARC220
https://atcoder.jp/contests/arc220
performance: 1824
A - Sum of Reciprocals of Squares
\(n=x^2\) 可以构造 \(n\) 个 \(\frac{1}{x^2}\)。
\(\frac{1}{x^2}\) 可以变成 4 个 \(\frac{1}{(2x)^2}\) 或者 \(9\) 个 \(\frac{1}{(3x)^2}\)。那么较大的都能造出来了。
无解的有:\(2,3,5\),对于 \(6,8,11,14\) 需要跑暴力特殊构造。
B - Incomplete Shuffle
结论:所有数形成一个置换环。因为一个置换环最后那个位置不能操作,而只有 \(n\) 是没有操作的。
那么连边 \(a_i\to b_i\),有欧拉回路则说明 \(ans=n\)。
否则,相当于修改最少的 \(b_i\) 使得图有欧拉回路。同时该问题等价于将所有边划分为最少的路径数量(点可以重复走)。
那么如果一个点出度大于入度,则需要新增路径起点。如果所有点都满足 \(\deg_{in}=\deg_{out}\),则是回路,可以使用一条路径跑完。
所以对于每个连通块,计算 \(\max(1,\sum_{u\in D}\max(0,deg^{out}_u-deg^{in}_u))\)。
C - Range Increment
显然,\(A_i\) 要么不变要么变成 0。
设 \(f_i\) 表示覆盖 \(i\) 的操作区间数量。
那么先继承 \(i-1\) 的区间,再选择去掉若干还是添入若干区间。
设 \(x=(f_{i-1}+A_i)\bmod M\),则需要去掉 \(x\) 个区间。
但是如果 \(f_{i-1}<x\) 则无法做到这一点,去掉 \(x\) 个后需要补充 \(M\) 个操作区间。
使用优先队列维护 \(M-x\),可以花费 \(M-x\) 的代价得到 \(M\) 个操作区间。
如果优先队列内最小的代价都超过 \(k\) 则说明无解,\(A_i\) 不变。
浙公网安备 33010602011771号