1102 面积最大的矩形
来源:互联网 发布:幼儿英语软件 编辑:程序博客网 时间:2024/05/10 10:18
有一个正整数的数组,化为直方图,求此直方图包含的最大矩形面积。例如 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示例
6215623
Output示例
10
解题思路:求解每个长方形的l[i], r[i],最终求解面积的最大值。
可以采用递推的方法求解l[i], r[i]。 这次换个做法,采用单调队列求解l[i], r[i].
#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <string>#include <vector>#include <deque>#include <queue>#include <algorithm>using namespace std;const int maxn = 50010;const int inf = 0x3f3f3f3f;typedef long long ll;int h[maxn], l[maxn], r[maxn];int main() { int n; ll ans = 0; deque<int> dq; scanf("%d", &n); h[0] = h[n+1] = 0; for(int i = 1; i <= n; ++i) { scanf("%d", &h[i]); } dq.push_back(n); for(int i = n - 1; i >= 0; --i) { if(h[dq.back()] <= h[i]) { dq.push_back(i); } else { int t = dq.back(); while(dq.size() > 0 && h[dq.back()] > h[i]) { l[dq.back()] = t; dq.pop_back(); } dq.push_back(i); } } while(dq.size() > 0) dq.pop_back(); dq.push_back(1); for(int i = 2; i <= n + 1; ++i) { if(h[i] >= h[dq.back()]) { dq.push_back(i); } else { int t = dq.back(); while(dq.size() > 0 && h[dq.back()] > h[i]) { r[dq.back()] = t; dq.pop_back(); } dq.push_back(i); } } /* for(int i = 1; i <= n; ++i) { printf("%d %d\n", l[i], r[i]); } */ for(int i = 1; i <= n; ++i) { ans = max(ans, 1LL*h[i]*(r[i]-l[i]+1)); } cout << ans << endl; return 0;}
0 0
- 1102 面积最大的矩形
- 面积最大的矩形
- 面积最大的矩形
- 面积最大的矩形
- 51nod 1102 面积最大的矩形
- 51NOD 1102 面积最大的矩形
- 1102 面积最大的矩形(简单DP)
- 51nod 1102 面积最大的矩形
- 51nod-【1102 面积最大的矩形】
- 51Nod 1102 面积最大的矩形
- 51nod-1102 面积最大的矩形
- 51nod 1102 面积最大的矩形
- 51Nod 1102 面积最大的矩形
- 最大的连续矩形面积
- 51nod-1102 . 面积最大的矩形&&hdu-1506
- 51Nod-1102-面积最大的矩形
- 51Nod Problem 1102 面积最大的矩形(DP)
- 51nod 1102 面积最大的矩形【单调栈、预处理】
- [备忘]和人事部门打交道
- windows下hosts文件不起作用的问题
- 大数据实时处理–Spark及BDAS技术应用
- 凸透镜成像规律
- android 常见死机问题-如何分析
- 1102 面积最大的矩形
- 谈ObjC对象的两段构造模式
- 程序猿提高工作效率的15点技巧
- 社説 20150608 環境白書 自然資源を地方創生の一助に
- leetcode[53]-Maximum Subarray
- listView美化,几个不重要但特别的属性5
- Java List 的深拷贝
- Scrapy安装配置,在Pycharm中运行和no module named win32API错误
- android图片特效处理之怀旧效果