[??记录]arc136C Circular Addition
题意:圆周上有 \(n\) 数,每次把圆周上的一段区间整体减一,问最少几次操作可以归零。区间自己不重叠。
思考在数轴上的场景,一次加相当于差分数组一个位置减一个位置加,差分数组绝对值之和的一半即为答案。
放到圆周上,以 \(1\) 为起始点,若区间不跨越原点,仍是一个偏前的位置加,一个位置减;若跨越原点,则是一个偏后的位置加,一个偏前的位置减。答案的下限仍是差分数组绝对值和的一半。
但是,只有差分数组,还原不回原答案;若强行在 \(1\) 与 \(n\) 间插入一个 \(0\),它会被跨越原点的操作增加。
这时官方题解出了离谱的做法——找到另一个下限并证明这两个下限能放出答案。
注意到一次操作相当于把差分数组单点加并单点减,同时把最大值增加最大 \(1\)。于是下限的另一估计是 \(\max\{a_i\}\)。
下面证明 \(\max\{\frac{1}{2}\sum_{i=1}^n{|a_i - a_{i+1}|},\max\{a_i\}\}\) 为答案。
若后者大于前者,做全局减一即可,可证没有数字等于 \(0\)。
若前者大于后者,选取全为最大值的连续区间减一,前者减一。
若前者等于后者,找一段包含全部最大值但不是整个环减一,可证没有数字为 \(0\)。
很离谱。我不知道赛场上遇到这道题会怎样。可能是顺着差分的思路渐行渐远?感觉这个答案下限估计并证明可取真的离谱。
本文来自博客园,作者:purplevine,转载请注明原文链接:https://www.cnblogs.com/purplevine/p/16875372.html