0%

START202——Equalize Juice

思路讲解

START202——Min-Max Deque

和该问题一样,直接解决这个问题比较难,我们可以解决一些更简单的问题。

比如说就是让果汁恰好为X?

那么考虑我们要选 i1,i2,...iki_1,i_2,...i_k 个,那么这些 i 要满足什么条件那?

这个问题其实也比较复杂,我们不妨只看 ...i1...i2......i_1...i_2... 这两个之间的情况。

我们发现,A[1]++A[i1]++A[i21]XA[1]+\cdots+A[i_1]+\cdots+A[i_2-1]≥X,是必要条件。

而且 A[i1+1]++A[i21]A[i_1+1]+\cdots+A[i_2-1] 的加多了的部分还可以回馈给 A[i2]A[i_2]

那么我们就会形成一种感觉,就是说前面的部分其实不重要,越少越好,后面的部分要越多越好,因为还可以回馈给下一个。(抱歉,官解也没有证明,所以说只能这样讲了)

当然,我们需要将这种思维拓展到每一个相邻元素之间,那么我们发现,前面一个元素的后面下面一个元素的前面,因此我们要恰好,就是需要删的元素不能多(这个还是很容易发现的)。

于是我们不难写出程序。

AC代码

https://www.codechef.com/viewsolution/1188472477

心路历程(WA,TLE,MLE……)