题目链接:https://www.luogu.org/problemnew/show/SP1805 分析: 我们可以用一个单调栈由低到高来存储它的高度,并用数组对每个高度记录一下它前面(包括它自己)一共有多少个比它高的,可以看做它的左宽. 按顺序考虑每个高度h,如果h大于栈顶元素,则入栈,此时它大于左面全部的元素,并且将它的宽度初始为1. 否则,将栈内元素出栈,直到满足上面的条件.出栈时,我们要将出栈元素对之后问题的影响全部考虑进行处理,才能保证做法的正确性. 对于每个高度,它的作用无非两个:…