Largest Rectangle in a Histogram

aaarticlea/png;base64,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FvpPqLZRfI+0MUc7usc62QJ6jxDt05i4k93zGuO8wXp5WC/vP38UvUP/+XNg9YnpPeJOtrCjW9DG5NMYfCqd39r5n10NNIaQ1iWidompDKx1aiELpQsXXNNxyad0AaWhtLR01apVcxSYK1euyPsPCQAA4H8Jl8vdtWuXvL+PSueLL7549uyZvP+EgF8NuScplC6giKDSVVdXP6t4/PDDD//93/8NpQsAwG8XVLrLly8nkUjy/p76M9TV1aF0lQy5JymULqCIoNK1tLSU90KkkJSUtHjxYihdAAB+u6DS3bVrF5fLlfdafoalpeWqVatKS0vlvRDgV0PuSQqlCygiULoAAADThyKXLtzTVTLknqRQuoAiAqULAAAwfUDpAjOG3JMUShdQRKB0AQAApg8oXWDGkHuSQukCigiULgAAwPQBpQvMGHJPUihdQBGB0gUAAJg+oHSBGUPuSQqlCygiULoAAADTB5QuMGPIPUmhdAFFBEoXAABg+oDSBWYMuScplC6giEDpAgAATB9QusCMIfckhdIFFBEoXQAAgOkDSheYMeSepFC6gCICpQsAADB9KHjpwjvSlAm5JymULqCIQOkCAABMHwpeunBPV5mQe5JC6QKKCJQuAADA9AGlC8wYck9SKF1AEYHSBQAAmD6gdIEZQ+5JCqULKCJQugAAANMHlC4wY8g9SaF0AUUEShcAAGD6gNIFZgy5JymULqCIQOkCAABMH1C6wIwh9ySF0gUUEShdAACA6UORS3fVqlVwypgyIfckhdIFFBEoXQAAgOkDSheYMeSepFC6gCICpQsAADB9KHLpwu4FJUPuSQqlCygiULoAAADTB5QuMGPIPUmhdAFFBEoXAABg+oDSBWYMuScplC6giEDpAgAATB8KXrqwT1eZkHuSQukCigiULgAAwPSh4KUL93SVCbknKZQuoIhA6QIAAEwfULrAjCH3JIXSBRQRKF0AAIDpA0oXmDHknqRQuoAiAqULAAAwfUDpAjOG3JMUShdQRKB0AQAApg8oXWDGkHuSQukCigiULgAAwPQBpQvMGHJPUihdQBGB0gUAAJg+oHSBGUPuSQqlCygiULoAAADTB5QuMGPIPUmhdAFFBEoXAABg+oDSBWYMuScplC6giEDpAgAATB9QusCMIfckhdIFFBEoXQAAgOkDSheYMeSepFC6gCICpQsAADB9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" alt="" />

给出一些连续的长度为1的长方形。问所能构成的矩形的最大面积是多少?

设最大的面积的左端点为L,又端点为R,H=min(h[i]),    i>=L&&i<=R;   我们分析h[L-1],一定有h[L-1]<h[L],不然的话可以扩充。  同理  一定有 h[R]>h[R+1]

我们以每个高度去构建长方形。找出  [L,R].  我们要找出j<=i  &&a[j]<=a[i]的最大的j;   根据问题的性质。   假设  a[1]>=a[2]的话,现在i>2,   如果a[2]<a[i]的话,a[1]需要考虑了。如果a[2]>=a[i]的话,a[1]一定大于a[i]。所以可以构建单调stack.

R 同样处理。

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <list>
#include <iomanip>
#include <cstdlib>
#include <sstream>
using namespace std;
typedef long long LL;
const int INF=0x5fffffff;
const double EXP=1e-;
const int MS=; int n;
int deq[MS];
int a[MS];
int L[MS],R[MS];
int s,t; int main()
{
while(scanf("%d",&n)&&n)
{
for(int i=;i<n;i++)
scanf("%lld",&a[i]);
s=t=;
for(int i=;i<n;i++)
{
while(t>&&a[deq[t-]]>=a[i])
t--;
L[i]=t==?:(deq[t-]+);
deq[t++]=i;
}
s=t=;
for(int i=n-;i>=;i--)
{
while(t>&&a[deq[t-]]>=a[i])
t--;
R[i]=t==?n:deq[t-]; //[L,R)
deq[t++]=i;
}
LL ans=0LL;
for(int i=;i<n;i++)
ans=max(ans,(LL)a[i]*(R[i]-L[i]));
printf("%lld\n",ans);
}
return ;
}

Largest Rectangle in a Histogram 常用技巧 stack的运用的更多相关文章

  1. stack(数组模拟) POJ 2559 Largest Rectangle in a Histogram

    题目传送门 /* 题意:宽度为1,高度不等,求最大矩形面积 stack(数组模拟):对于每个a[i]有L[i],R[i]坐标位置 表示a[L[i]] < a[i] < a[R[i]] 的极 ...

  2. poj 2559 Largest Rectangle in a Histogram - 单调栈

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

  3. 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 ...

  4. POJ 2559 Largest Rectangle in a Histogram(单调栈)

    传送门 Description A histogram is a polygon composed of a sequence of rectangles aligned at a common ba ...

  5. Largest Rectangle in a Histogram

    2107: Largest Rectangle in a Histogram Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 777  Solved: 22 ...

  6. POJ 2559 Largest Rectangle in a Histogram -- 动态规划

    题目地址:http://poj.org/problem?id=2559 Description A histogram is a polygon composed of a sequence of r ...

  7. poj 2559 Largest Rectangle in a Histogram (单调栈)

    http://poj.org/problem?id=2559 Largest Rectangle in a Histogram Time Limit: 1000MS   Memory Limit: 6 ...

  8. POJ 2559 Largest Rectangle in a Histogram (单调栈或者dp)

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

  9. hdu 1506 Largest Rectangle in a Histogram(单调栈)

                                                                                                       L ...

随机推荐

  1. Fast-paced Multiplayer

    http://www.gabrielgambetta.com/fpm1.html —————————————————————————————————————————————————————— Fast ...

  2. SpriteKitCommonUse

    [SpriteKitCommonUse] 1.SKView中提供了显示FPS和NodeCount(当前view)的方法,如下: 展现一个scene: - (void)viewWillAppear:(B ...

  3. hdu 1176 免费馅饼(数塔类型)

    http://acm.hdu.edu.cn/showproblem.php?pid=1176 免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  4. datatable把一个LIst的数据放入两个colum防止窜行的做法

    DataColumn objectOne = new DataColumn("objectOne", typeof(object)); dt.Columns.Add(objectO ...

  5. POJ1651Multiplication Puzzle(区间DP)

    比较好做的区间DP 状态转移方程:DP[i][j] 表示区间[i,j]最小的乘积和. DP[i][j] = MIN{DP[i][k-1]+DP[k+1][j] + a[k]*a[i-1]*a[j+1] ...

  6. iOS Framework lipo报错 lipo: can't map input file

    fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ ...

  7. 使用struts dojo ajax源码案例

    我这里使用的jar 包struts2-dojo-plugin-2.2.1.1.jar ===========jsp======================= <%@ taglib prefi ...

  8. jdbc调用存储过程的方法

    ----------------------------jdbc调用存储过程的方法---------------------------------------------------private ...

  9. PING的原理以及ICMP协议

    主要内容: 1.ping的原理以及工作过程 2.ICMP协议 3.ICMP的应用:ping,traceroute 1.ping的原理以及工作过程  ping的原理  ping 程序是用来探测主机到主机 ...

  10. <meta http-equiv = "X-UA-Compatible" cotent = "IE=edge,chrome=1"/>

    <meta http-equiv = "X-UA-Compatible" cotent = "IE=edge,chrome=1"/> 制定ie调用哪 ...