即:
题解
我们分析一下条件,
bj <= bi <= bn 什么意思? 说明bj和bi都不超过bn,那么首先可以确定范围
bi可以在bj~bn的范围内任意波动,设bm是bn左边第一个严格比它大的数,那么j只能在m+1~n内取值。
然后可以用反证法证明bj就是m+1到n中的最小值。
那么可以用一个单调递减单调栈来算每一个m,然后设第i个元素的“m”为Ai,不难发现,新加进栈里的 i 的Ai就是弹出的所有A和 i 中b值最小的那个(标号),即每次(从后往前)弹出标号j时,
这样就可以求出答案了,总复杂度O(n)。
代码
被狗吃了(找不到题)