口胡
T1:
首先看到此类题目我们进行差分,得 $ b_i=ai-a{i-1} ( a0=a{n+1}=0 ),每次区间 +1 转化为在差分数组上每次选一个点对 (i,j) ,令 b_i+1 , bj-1 ,则将 b 全变为 0 的最小操作次数是 \frac{1}{2}\sum\limits{i=1}^{n+1} |b_i| ,( {\color{blue}经典问题} $)。
我们加入取模的影响,则要将每个 b_i 变为 -K ,K 或 0。转化为我们可以任意的将一个 $ bi 加上或减去 K ,使得 \frac{1}{2}\sum\limits{i=1}^{n+1} |b_i| $最小。
由于 \sum b_i=0 故某个数被加,一定存在另一个数被减(反之亦然)。
由于 -K \lt b_i \lt K 所以:
对于 +K 处,b_i 必然 \le0 ,相较原贡献减量为 \Delta = |b_i+K| – |b_i| = K+2b_i
同理,-K 处 \Delta = |b_i-K| – |b_i| = K-2b_i
然后使用二分,但是对于这里的单调性证明我不会。
T2
阿哈,其实题解写的算是清晰的了,我可以看的懂,就不多赘述了。有个两个要点:
- 为什么可以保证每次枚举包围盒都不重?
因为包围盒四边都至少有一个点,所以只要有一边不一样,就必定不会产生相同的情况。 - 统计时都让两个矩阵贴着包围盒的边,为什么?
因为我们只关心染色的方案数,不关系如何摆放矩阵。