51 nod 1102 面積最大的矩形

2021-08-19 03:10:43 字數 982 閱讀 4020

1102 面積最大的矩形

基準時間限制:1 秒 空間限制:131072 kb 分值: 20 

難度:3級演算法題

有乙個正整數的陣列,化為直方圖,求此直方圖包含的最大矩形面積。例如 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

輸出最大的矩形面積
input示例

621

5623

output示例

10
對於每個小的矩形來說,它所能參與拼接的大矩形的面積可視為向左找高度不比它低的和向右找高度不比它低的矩形拼成的大矩形的面積。

#include #define maxn 50005

using namespace std;

long long a[maxn],left[maxn],right[maxn];

// left[i]表示第i個矩形左右最大可以延伸到矩形的位置

int main()

left[0]=left[n+1]=-1;

for(i=2; i<=n; ++i) //找到每個矩形的最大左延伸 }

right[0]=right[n+1]=-1;

for(i=1; i<=n-1; ++i) //找到每個矩形的最大右延伸 }

long long sum=0;

for(i=1; i<=n; ++i)

cout<

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個...

51nod 1102 面積最大的矩形

1102 面積最大的矩形 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 有乙個正整數的陣列,化為直方圖,求此直方圖包含的最大矩形面積。例如 2,1,5,6,2,3,對應的直方圖如下 面積最大的矩形為5,6組成的寬度為2的矩形,面積為10。input 第1行 1個...