【WinterCamp 2013】楼房重建 && 【NOIP2017提高A组模拟10.8】God Knows
感谢czy的题解。这两题是类似的。转换以后都是这样的:有一个序列a[1..n],每次询问对a[i-j]之间的元素做一个(递增或递减)单调栈,求单调栈里有多少个元素,或者是还有b[1..n],求做了单调栈以后,单调栈里的元素对应的b的极值。有修改,为单点修改。做法其实本质是利用线段树的分治思想。假设建的是递减的单调栈,求单调栈里元素的个数。设query(l,r,p)表示在a[l..r]所形成的单调栈