目录
[COCI2020-2021#5] Po
题目描述:
有一个长度为 n 的数组。在初始状态下,所有元素都为 0。
每次操作,可以将一个连续的区间 [l,r] 内的所有数加上一个正整数 x,但要求任意两个操作区间要么互不相交,要么一个包含另外一个。
请问能将原数组变为给定数组 a 的最少操作次数。
n<=100000
每个数<=1000000000
思路:
这道题刚开始时看,就想到了单调栈,如果有人看过我的单调栈的解说或者在其他地方了解过,
就知道那些题目要用到单调栈,在这里我就不多说了。
在确定是使用单调栈后,我们应该考虑一下,是使用递增单调栈,还是递减单调栈。
经过我思考半个小时的功夫,我终于明白了用哪种单调栈,递减单调栈。
知道了方向,现在就是判断什么时候将次数增加。