Largest Rectangle in a Histogram
2107: Largest Rectangle in a Histogram
Time Limit: 1 Sec  Memory Limit: 64 MB
Submit: 777  Solved: 220
Description

Usually, histograms are used to represent discrete distributions, e.g., the frequencies of characters in texts. Note that the order of the rectangles, i.e., their heights, is important. Calculate the area of the largest rectangle in a histogram that is aligned at the common base line, too. The figure on the right shows the largest aligned rectangle for the depicted histogram.
Input
Output
Sample Input
7 2 1 4 5 1 3 3
4 1000 1000 1000 1000
0
Sample Output
8
4000
HINT
Huge input, scanf is recommended.
如果确定了长方形的左端点L和右端点R,那么最大可能的高度就是min{hi|L <= i < R}。
L[i] = (j <= i并且h[j-1] < h[i]的最大的j)
R[i] = (j > i并且h[j] > h[i]的最小的j)
#include <stdio.h>
#define MAX_N 100000 int n;
int h[MAX_N];
int L[MAX_N], R[MAX_N];
int stack[MAX_N]; long long max(long long a, long long b)
{
return (a > b) ? a : b;
} void solve()
{
//计算L
long long ans = ;
int t = ;
int i;
for (i = ; i < n; ++i)
{
while (t > && h[stack[t-]] >= h[i])
t--;
L[i] = (t == ) ? : (stack[t-] + );
stack[t++] = i;
} //计算R
t = ;
for (i = n - ; i >= ; --i)
{
while (t > && h[stack[t-]] >= h[i])
t--;
R[i] = (t == ) ? n : stack[t-];
stack[t++] = i;
} for (i = ; i < n; ++i)
{
ans=max ( ans, ( long long)h[i]*( R[i]- L[i]));
}
printf("%lld\n", ans);
} int main(void){
// freopen("a.txt","r",stdin);
int i;
while (scanf("%d", &n) != EOF && n != )
{
for (i = ; i < n; ++i)
scanf("%d", &h[i]);
solve();
} return ;
}
Acknowledge:jdplus http://blog.csdn.net/jdplus/article/details/20606673
Largest Rectangle in a Histogram的更多相关文章
- poj 2559  Largest Rectangle in a Histogram - 单调栈
		
Largest Rectangle in a Histogram Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19782 ...
 - DP专题训练之HDU 1506 	Largest Rectangle in a Histogram
		
Description A histogram is a polygon composed of a sequence of rectangles aligned at a common base l ...
 - Largest Rectangle in a Histogram(DP)
		
Largest Rectangle in a Histogram Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K ...
 - POJ 2559 Largest Rectangle in a Histogram(单调栈)
		
传送门 Description A histogram is a polygon composed of a sequence of rectangles aligned at a common ba ...
 - Largest Rectangle in a Histogram(HDU1506)
		
Largest Rectangle in a Histogram HDU1506 一道DP题: 思路:http://blog.csdn.net/qiqijianglu/article/details/ ...
 - POJ 2559 Largest Rectangle in a Histogram
		
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18942 Accepted: 6083 Description A hi ...
 - HDU 1506 Largest Rectangle in a Histogram (dp左右处理边界的矩形问题)
		
E - Largest Rectangle in a Histogram Time Limit:1000MS Memory Limit:32768KB 64bit IO Format: ...
 - hdu---1506(Largest Rectangle in a Histogram/dp最大子矩阵)
		
Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
 - HDU 1506 Largest Rectangle in a Histogram set+二分
		
Largest Rectangle in a Histogram Problem Description: A histogram is a polygon composed of a sequenc ...
 
随机推荐
- 通过爬虫代理IP快速增加博客阅读量——亲测CSDN有效!
			
写在前面 题目所说的并不是目的,主要是为了更详细的了解网站的反爬机制,如果真的想要提高博客的阅读量,优质的内容必不可少. 了解网站的反爬机制 一般网站从以下几个方面反爬虫: 1. 通过Headers反 ...
 - node 大牛的blog
			
node一些基本的核心包的使用 http://cnodejs.org/topic/548e53f157fd3ae46b2334fd node的基本的三种框架的比较 http://cnodejs.o ...
 - 多个TableView的练习
			
效果图: 左边图片的代码: // // SecViewController.m // UI__多个TableView练习 // // Created by dllo on 16/3/17. // Co ...
 - (转载)Go语言开发环境配置
			
一.我为什么要学习go语言 当今已经是移动和云计算时代,Go出现在了工业向云计算转型的时刻,简单.高效.内 置并发原语和现代的标准库让Go语言尤其适合云端软件开发(毕竟它就是为此而设计的).到2014 ...
 - ORA-12737: Instant Client Light: unsupported server character set CHS16GBK/ZHS16GBK解决方案
			
二.Navicat for Oracle的配置 1.启动该工具,出现如下的开始界面,单击“连接”选项,进行连接数据库,如图所示: 6.在“新建连接”对话框中,输入任意的连接名,选择默认的连接类型,输入 ...
 - Hibernate-二级缓存策略
			
二级缓存的策略 当多个并发的事务同时访问持久化层的缓存中的相同数据时,会引起并发问题,必须采用必要的事务隔离措施. 在进程范围或集群范围的缓存,即第二级缓存,会出现并发问题.因此可以设定以下4种类型的 ...
 - WAR包
			
1.windows命令下使用cmd命令打包 jar -cvf applicationname.war package.*: 2.程序中使用代码打包(这里用java) try{ string strja ...
 - BZOJ-1050   旅行comf    并查集+乱搞
			
好久以前codevs上做过的,拿着改了改.. 1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2194 S ...
 - POJ3038 Flying Right
			
Description Figuring that they cannot do worse than the humans have, Farmer John's cows have decided ...
 - .net String.Format数字格式化输出
			
内容转载自:http://www.cnblogs.com/lqb/archive/2008/08/04/1259498.html 前面内容这个做的总结的很全,今后有新增的我继续往后补充.请留意我增加的 ...