ABC422
好久没写题解了。省流:VP,90min AK。一雪前耻。
A
设关卡为 \((n,m)\),考虑 \(m \gets m+1\)。如果 \(m=9\) 就令 \(m \gets 1,n \gets n+1\)。简单的判断。
submission.
B
对于每个 #
方格枚举周围四格,数一下个数,也没什么好说的。
submission.
C
不想判断 corner。极度不动脑子。就是二分一个 \(x\),合法条件就是,\(x\) 要小于 A
的个数且小于 C
的个数,且剩余字符数量大于等于 \(x\)。
submission.
D
直观的感受是,平均分配。考虑这么构造:
设 \(q = \left \lfloor \frac k {2^n} \right \rfloor,r=k-q \times 2^n\)。给数组中每个元素赋上初值 \(q\),再考虑进行 \(r\) 次 \(+1\) 操作。
然后对左半和右半平均分配 \(r\) 次 \(+1\) 操作。递归地处理。
算最终的 \(X\) 的话,就可以直接倒着再算一遍,复杂度是可以接受的。
submission.
写代码 naive 了。由这个构造方式不难发现,当 $r >0 $ 时最终的 \(X\) 一定等于 \(1\)。而此时必存在一组 \((a_i,a_j)\) 满足 \(a_i \ne a_j\),故 \(X\) 的一个下界是 \(1\)。这也侧面印证了我们构造的正确性。