洛谷上做过一道一样的题(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的更多相关文章

  1. POJ2559 Largest Rectangle in a Histogram —— 单调栈

    题目链接:http://poj.org/problem?id=2559 Largest Rectangle in a Histogram Time Limit: 1000MS   Memory Lim ...

  2. poj2559 Largest Rectangle in a Histogram(单调栈)

    Description A histogram is a polygon composed of a sequence of rectangles aligned at a common base l ...

  3. POJ2559 Largest Rectangle in a Histogram (单调栈

    Largest Rectangle in a Histogram Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26012 ...

  4. [POJ2559]Largest Rectangle in a Histogram (栈)

    题意 如图所示,在一条水平线上有n个宽为1的矩形,求包含于这些矩形的最大子矩形面积(图中的阴影部分的面积即所求答案). 思路 一个很老的,也是一个很好的题目. 维护一个单调栈即可. 不过在洛谷SP18 ...

  5. ☆ [POJ2559] Largest Rectangle in a Histogram 「单调栈」

    类型:单调栈 传送门:>Here< 题意:给出若干宽度相同的矩形的高度(条形统计图),求最大子矩形面积 解题思路 单调栈的经典题 显然,最终的子矩形高度一定和某一个矩形相等(反证).因此一 ...

  6. POJ2559 Largest Rectangle in a Histogram 单调栈

    题目大意 有一个直方图,其所有矩形的底均是1(以后简称小矩形).给出这些矩形的高度,求这些矩形的并集中存在的面积最大的矩形(简称大矩形)的面积. 题解 大矩形的高必然一边等于一个小矩形的高,另一边小于 ...

  7. [POJ2559&POJ3494] Largest Rectangle in a Histogram&Largest Submatrix of All 1’s 「单调栈」

    Largest Rectangle in a Histogram http://poj.org/problem?id=2559 题意:给出若干宽度相同的矩形的高度(条形统计图),求最大子矩形面积 解题 ...

  8. 【题解】Largest Rectangle in a Histogram [SP1805] [POJ2559]

    [题解]Largest Rectangle in a Histogram [SP1805] [POJ2559] [题目描述] 传送: \(Largest\) \(Rectangle\) \(in\) ...

  9. NYOJ-258/POJ-2559/HDU-1506 Largest Rectangle in a Histogram,最大长方形,dp或者单调队列!

                                         Largest Rectangle in a Histogram 这么经典的题硬是等今天碰到了原题现场懵逼两小时才会去补题.. ...

随机推荐

  1. Angular 双向数据绑定

    <!DOCTYPE html><html ng-app="myApp"><head lang="en"> <meta ...

  2. Angular ngRepea

    <!DOCTYPE html><html ng-app><head lang="en"> <meta charset="UTF- ...

  3. 动态SQL2

    set标签 存放修改方法,我们之前写的更新方法是全字段的更新,或者是指定字段的更新,现在我想实现一个新功能,传入的Employee包含什么字段,数据库就更新相对应的列值: 如果我们啥也不做直接上< ...

  4. maven中jar下载失败

    关键词:maven jar 错误描述:反编译时遇到 invalid LOC header (bad signature)的问题 aether-89969cb8-5741-44e3-be2c-74f90 ...

  5. Java集合和数组的区别

    参考:Java集合和数组的区别 集合和容器都是Java中的容器. 区别 数组特点:大小固定,只能存储相同数据类型的数据 集合特点:大小可动态扩展,可以存储各种类型的数据   转换 数组转换为集合: A ...

  6. shiro框架的UsernamePasswordToken与对应Realm中的AuthenticationToken的一点比较

    这里以简单的登陆为例子 控制器对应的登陆方法: @RequestMapping(value = "/login", method = RequestMethod.GET) publ ...

  7. Redis 禁用FLUSHALL FLUSHDB KEYS 命令

      (error) ERR unknown command 'keys'问题解决(error) ERR unknown command 'FLUSHDB' 问题解决 背景 FLUSHALL FLUSH ...

  8. idea -> Error during artifact deployment. See server log for details.

    用idea导入eclipse工程,运行时,报Error during artifact deployment. See server log for details. 谷歌,最后发现是最新  tomc ...

  9. Introduction to Dynamic SQL

    The idea of using dynamic SQL is to execute SQL that will potentially generate and execute another S ...

  10. Express学习(1) ------Express 入门

    Express 是node 第三方框架,大家都知道,框架的意义就在于能大大简化程序地开发.那么我们就看一下Express是怎么简化node程序开发的. 1,用Express写一个hello world ...