HDU 1506 最大子矩形

表示之前还不会这种类型怎么快速求值。。。

(Solution 1)

我们可以维护一个单调栈,使得(h)是递增的。
每次到一个位置,删到前面第一个比它小的位置,记作(k),然后最长的高度为(h[i])的区间就是([k+1,i])
正着来一遍,再倒着来一遍即可。

(Solution 2)

笛卡尔树 (by) (OIWIKI)

原文地址:https://www.cnblogs.com/jz929/p/13777623.html