poj2559 Largest Rectangle in a Histogram
洛谷上做过一道一样的题(P1719 最大加权矩形),但是没写博客...
现在已一个新高度来看待这题,沿用以前的方法,感觉很好(草稿纸模拟数小时后20分钟AC)
就是对于每一个位置,记录能够往右延伸多远。
然后反着做一遍,记录能向左多远。
单调栈算法。
当然也有扫一遍即可的算法,但是写着烦,就没写。
#include <cstdio>
using namespace std;
const int N = ;
typedef long long LL; LL Q[N], t, h[N], l[N]; inline void max(LL &a, const LL b) {
if(a < b) a = b;
return;
} int main() {
int n;
while(scanf("%d", &n)) {
if(n == ) {
break;
}
t = ;
for(int i = ; i <= n; i++) {
scanf("%lld", &h[i]);
}
h[n + ] = ;
for(int i = ; i <= n + ; i++) {
Q[++t] = i;
while(h[Q[t - ]] > h[i]) {
l[Q[t - ]] = i - Q[t - ] - ;
Q[t - ] = Q[t--];
}
}
t = ;
for(int i = n; i >= ; i--) {
Q[++t] = i;
while(h[Q[t - ]] > h[i]) {
l[Q[t - ]] += (Q[t - ] - i);
Q[t - ] = Q[t--];
}
}
long long ans = ;
for(int i = ; i <= n; i++) {
max(ans, h[i] * l[i]);
}
printf("%lld\n", ans);
}
return ;
}
AC代码
poj2559 Largest Rectangle in a Histogram的更多相关文章
- POJ2559 Largest Rectangle in a Histogram —— 单调栈
题目链接:http://poj.org/problem?id=2559 Largest Rectangle in a Histogram Time Limit: 1000MS Memory Lim ...
- poj2559 Largest Rectangle in a Histogram(单调栈)
Description A histogram is a polygon composed of a sequence of rectangles aligned at a common base l ...
- POJ2559 Largest Rectangle in a Histogram (单调栈
Largest Rectangle in a Histogram Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 26012 ...
- [POJ2559]Largest Rectangle in a Histogram (栈)
题意 如图所示,在一条水平线上有n个宽为1的矩形,求包含于这些矩形的最大子矩形面积(图中的阴影部分的面积即所求答案). 思路 一个很老的,也是一个很好的题目. 维护一个单调栈即可. 不过在洛谷SP18 ...
- ☆ [POJ2559] Largest Rectangle in a Histogram 「单调栈」
类型:单调栈 传送门:>Here< 题意:给出若干宽度相同的矩形的高度(条形统计图),求最大子矩形面积 解题思路 单调栈的经典题 显然,最终的子矩形高度一定和某一个矩形相等(反证).因此一 ...
- POJ2559 Largest Rectangle in a Histogram 单调栈
题目大意 有一个直方图,其所有矩形的底均是1(以后简称小矩形).给出这些矩形的高度,求这些矩形的并集中存在的面积最大的矩形(简称大矩形)的面积. 题解 大矩形的高必然一边等于一个小矩形的高,另一边小于 ...
- [POJ2559&POJ3494] Largest Rectangle in a Histogram&Largest Submatrix of All 1’s 「单调栈」
Largest Rectangle in a Histogram http://poj.org/problem?id=2559 题意:给出若干宽度相同的矩形的高度(条形统计图),求最大子矩形面积 解题 ...
- 【题解】Largest Rectangle in a Histogram [SP1805] [POJ2559]
[题解]Largest Rectangle in a Histogram [SP1805] [POJ2559] [题目描述] 传送: \(Largest\) \(Rectangle\) \(in\) ...
- NYOJ-258/POJ-2559/HDU-1506 Largest Rectangle in a Histogram,最大长方形,dp或者单调队列!
Largest Rectangle in a Histogram 这么经典的题硬是等今天碰到了原题现场懵逼两小时才会去补题.. ...
随机推荐
- spring的xml配置里,最好不要配置xsd的版本名称
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- C#如何调用C++的dll
背景 一个项目,算法部分使用C++的openCV库编写图像处理程序,编译成dll,用户界面采用C#编写,去调用该dll暴露的接口. C#编写的是托管代码,编译生成微软中间语言,而普通C++代码则编译 ...
- MyBatis映射文件3(参数处理Map)
参数命名 POJO 如果多个参数,正好是业务逻辑的数据模型,那么我们就可以直接传入POJO,这样#{}中就可以直接使用属性名 Map 如果多个参数不是业务逻辑的数据模型,没有对应的POJO,为了方便, ...
- 【纪录】Hash about
backup a easy implement # coding: utf-8 def add(k, v): pass def get(target): pass class LinearMap(ob ...
- zabbix自定义模板——监控TCP连接状态
TCP十二种连接状态说明 可以使用man netstat查看 LISTEN - 侦听来自远方TCP端口的连接请求: SYN-SENT -在发送连接请求后等待匹配的连接请求: SYN-RECEIVED ...
- 老男孩python学习自修第十二天【常用模块之生成随机数】
常用函数 import random random.random() 生成0到1之间的小数 random.randint(begin, end) 生成[begin, end]之间的整数 random. ...
- PHP爬虫框架Snoopy的使用
参考文档: http://ibillxia.github.io/blog/2010/08/10/php-connecting-tool-snoopy-introduction-and-applicat ...
- ABP 番外篇-菜单
public class LearningMpaAbpNavigationProvider : NavigationProvider { public override void SetNavigat ...
- Lambda表达式Contains方法(等价于SQL语句中的like)使用注意事项
貌似已经半年多没写一篇帖子了,充分的说明要么老总一天折腾的让人心齐疲惫,没心情去写:要么另外一种可能就是自己不思进取,说白了就是懒.好在这种状态在今天被打破了.MoNey加油. 众所周知,想在Enti ...
- Cisco IP 电话 将它的voice mail 发送到手机
功能一.将语音转成文字发送短信(有微软认知.百度认知.云片短信API) 功能二.直接将音频发送到微信 不废话,直接送个包 链接: https://github.com/JaviZhu/KLCN.Spe ...