最大的矩形(入门 dp)
来源:互联网 发布:php保存到记事本 编辑:程序博客网 时间:2024/06/08 06:36
Problem Description
在ACdream王国中有一排由N个矩形房子组成的住宅区,每个房子高为h[i],小Z想知道,在这些矩形房子中,你能找到的最大矩形面积是多少呢?
Input
多组数据,对于每组数据,首先是一个整数N,表示房子的数目(1<=N<=100000)
接下来是一行N个整数h[i],表示这些矩形的高度(1<=h[i]<=1000000)
Output
对于每组数据,输出一个整数,表示最大的矩形面积。
Sample Input
5
1 2 3 4 5
7
2 1 4 5 1 3 3
4
1000 1000 1000 1000
Sample Output
9
8
4000
Hint
样例一如图:
就是找以这个为中心,比他高的左右边界,遍历两次。然后再遍历一次找最大值。
#include<cstdio>#include<cstring>#include<iostream>#include<queue>#include<vector>#include<algorithm>#include<string>#include<cmath>#include<set>#include<map>#include<vector>using namespace std;typedef long long ll;const int inf = 0x3f3f3f3f;const int maxn = 100005;ll h[maxn],l[maxn],r[maxn];int main(){ #ifdef LOCAL freopen("C:\\Users\\巍巍\\Desktop\\in.txt","r",stdin); //freopen("C:\\Users\\巍巍\\Desktop\\out.txt","w",stdout); #endif // LOCAL int n; while(scanf("%d",&n)!=EOF) { for(int i = 1;i <= n;i++)scanf("%lld",&h[i]); for(int i = 1;i <= n;i++) { l[i] = i;r[i] = i; } for(int i = 2;i <= n;i++) { if(h[i] > h[i - 1]) l[i] = i; else { int temp = l[i - 1]; while(temp >= 1&&h[temp - 1] >= h[i]) { temp = l[temp - 1]; } l[i] = temp; } } for(int i = n - 1;i >= 1;i--) { if(h[i] > h[i + 1]) r[i] = i; else { int temp = r[i + 1]; while(temp <= n&&h[temp + 1] >= h[i]) { temp = r[temp + 1]; } r[i] = temp; } } ll ans = 0; for(int i = 1;i <= n;i++) { ans = max(ans,h[i]*(r[i] - l[i] + 1)); } printf("%lld\n",ans); } return 0;}
0 0
- 最大的矩形(入门 dp)
- 1102 面积最大的矩形(简单DP)
- City Game(DP,最大矩形问题)
- Largest Submatrix(DP,最大矩形问题)
- 【DP入门】矩形嵌套
- HDU1505(最大矩形面积+DP)
- HDU 1056 Largest Rectangle in a Histogram(dp)(求最大的矩形面积)
- 【难】【DP】计算“skyline”下的最大矩形面积
- 51Nod Problem 1102 面积最大的矩形(DP)
- Matrix Swapping II(DP,最大矩形问题)
- 最大的矩形
- 讨厌的最大矩形
- 最大的矩形
- 【ACM】最大的矩形
- CCF 最大的矩形
- CCF 最大的矩形
- 最大的矩形
- CSP最大的矩形
- linux关于文件搜索命令
- hdu1116Play on Words
- JS 的数组 ARRAY
- Windows程序设计第五版——源代码001之HelloMsg.c
- led驱动编写并非使用led 子系统(实际led驱动编写)
- 最大的矩形(入门 dp)
- 最长公共子序列
- Windows程序设计第五版——源代码002之SCRNSIZE.c
- 一结(10)
- the working copy"" failed to commit files.
- Windows程序设计第五版——源代码003之HELLOWIN.c
- 开始iOS 7中自动布局教程(一)
- android源码分析--MMS data 数据模型及业务逻辑transaction
- POJ3984 迷宫问题(DFS)