CF Round #889 订正

发布时间 2023-08-01 16:37:33作者: AcO2d

C. Dual

\(\bf \sf ez\ ver.\)

比较简单,首先不递减数组的差分数组必定是非负自然数构成的,所以我们只要全部变成正或负的,前后做一次前缀和即可。

全变成正或负,找到最大绝对值的数,对所有异号元素进行操作,理论最多次数为 \(2(n-1)=38\) 次。

\(^*\bf \sf hd\ ver.\)

我们发现异号元素可能远远大于同号元素,是否能颠倒符号。

题目中给的 \(0\le |a_i| \le 20\),我们发现尽管是 \(1\)\(-20\) 这种计算数据,只要把 \(1\) 倍增 \(\ge5\) 次就能 \(> 20\)

现在分析一下最优次数:令同号个数为 \(a\),异号个数为 \(b\),且令 \(a+b=20\)

  • \(b \le 12\) 时,次数为 \(b + 19\le 31\),可以通过。
  • \(b > 12\) 时,则 \(a< 8\),次数为 \(5 + a + 19 < 32\),可以通过。