此题对于新手来说真的是。。。
首先我们必须要知道如何用单调数列维护前缀和最小值。。这个阔以自己百度
http://acm.hdu.edu.cn/showproblem.php?pid=4193 先看这题
然后很明显就是先倍增序列,求出以每个点开头的最小序列
关键就是怎样处理操作1 与 2 了
我们阔以先忽略操作二。。。。。。以上分析省略网上很多了。。
我说 我认为的关键对于操作1我们肯定会想到万一在改变数列的时候影响到那个最小序列怎么办?
首先我们说全变加号如果改变的范围超过来最小序列包含的范围显然此时最小序列都是加了,不用管了,若没超过,我们首先让最小序列加上那个改变值若还小于0网上的题解已经说该怎么办了,这样我们阔以统一上述两个情况 在任何情况下都先加上那个改变值再判断就好了
对于变减号的情况用(最小序列)+(不是最小序列的部分)>=0这个不等式分析就好了
考试月没时间写代码了。。以后来补好/