有乙個正整數的陣列,化為直方圖,求此直方圖包含的最大矩形面積。例如 2,1,5,6,2,3,對應的直方圖如下:
面積最大的矩形為5,6組成的寬度為2的矩形,面積為10。
收起
第1行:1個數n,表示陣列的長度(0 <= n <= 50000)第2 - n + 1行:陣列元素a[i]。(1 <= a[i] <= 10^9)
輸出最大的矩形面積
6215623
10相當於一次遍歷,形成單調遞增的棧,相當於改變了內部結構,比較輸入的值和棧內的值,如果輸入的值小於棧內值,那麼計算當時面積,然後儲存起來,至於要是大於的話,那麼就讓這個輸入值入棧。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
long long a[101010];
int main()
else if (a[i]ans)
l=b.top();
b.pop();
}b.push(l);
a[l]=a[i];}}
printf("%lld\n",ans);
return 0;
}
1102 面積最大的矩形
1102 面積最大的矩形 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 有乙個正整數的陣列,化為直方圖,求此直方圖包含的最大矩形面積。例如 2,1,5,6,2,3,對應的直方圖如下 面積最大的矩形為5,6組成的寬度為2的矩形,面積為10。input 第1行 1個...
51NOD 1102 面積最大的矩形
有乙個正整數的陣列,化為直方圖,求此直方圖包含的最大矩形面積。例如 2,1,5,6,2,3,對應的直方圖如下 面積最大的矩形為5,6組成的寬度為2的矩形,面積為10。input 第1行 1個數n,表示陣列的長度 0 n 50000 第2 n 1行 陣列元素a i 1 a i 10 9 output ...
51nod 1102 面積最大的矩形
1102 面積最大的矩形 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 有乙個正整數的陣列,化為直方圖,求此直方圖包含的最大矩形面積。例如 2,1,5,6,2,3,對應的直方圖如下 面積最大的矩形為5,6組成的寬度為2的矩形,面積為10。input 第1行 1個...