题目:输入一个整数n,代表有n个  1(宽度) * h【i】(高度)的矩形。接下来n个数依次给定一个矩形高度的高度h【i】(i<=n)。

求:在给定的依次排列的这堆矩形构成的图形里用一个矩形圈出最大的一个矩形,求该最大矩形面积。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
ll h[],s[],w[];
int n,p;
int main()
{
while (scanf ("%d",&n)!=EOF)
{
if (n==) return ;
memset(h,,sizeof(h));
memset(s,,sizeof(h));
for (int i=;i<=n;i++)
scanf ("%d",&h[i]);
h[n+]=p=;//增加一个高度为0的矩形,避免扫描栈结束后有剩余矩形
ll ans=;
for (int i=;i<=n+;i++)
{
if (h[i]>s[p])
{
s[++p]=h[i];
w[p]=;
}
else //如果当前矩形比之前矩形低,那就出栈栈中矩形,直到有矩形比它低
{//用一个 宽度为出栈矩形总宽 高度为当前矩形 的新矩形代替之前矩形
ll wid=;
while (s[p]>h[i])
{
wid+=w[p];//统计宽度
ans=max(ans,1LL*(wid*s[p]));//计算出栈的矩形面积,更新答案
p--;//出栈
}
w[++p]=wid+;//将新矩形入栈
s[p]=h[i];
}
}
while (p!=)//将所有矩形出栈,按照上面的方法计算面积,更新答案
{
ans=max(ans,1LL*(s[p]*w[p]));
p--;
}
printf("%lld\n",ans);
}
}

poj 2559 最大矩形面积(单调栈)的更多相关文章

  1. Poj 2559 最大矩形面积 v单调栈 分类: Brush Mode 2014-11-13 20:48 81人阅读 评论(0) 收藏

    #include<iostream> #include<stack> #include<stdio.h> using namespace std; struct n ...

  2. POJ2559最大矩形面积——单调栈

    题目:http://poj.org/problem?id=2559 #include<iostream> #include<cstdio> using namespace st ...

  3. poj 2769 感觉♂良好 (单调栈)

    poj 2769 感觉♂良好 (单调栈) 比尔正在研发一种关于人类情感的新数学理论.他最近致力于研究一个日子的好坏,如何影响人们对某个时期的回忆. 比尔为人的一天赋予了一个正整数值. 比尔称这个值为当 ...

  4. 51nod 1102 面积最大的矩形(单调栈)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1102 题意: 思路: 做法就是求出每个长方形向左向右所能延伸的最大距离. ...

  5. POJ 2082 Terrible Sets(单调栈)

    [题目链接] http://poj.org/problem?id=2082 [题目大意] 给出一些长方形下段对其后横向排列得到的图形,现在给你他们的高度, 求里面包含的最大长方形的面积 [题解] 我们 ...

  6. poj 2796 Feel Good dp || 单调栈

    题目链接 题意 对于一个长度为\(n\)的非负整数数列\(a_1,a_2,-,a_n\),求\(max_{1≤l≤r≤n}f(l,r)\), 其中 \[f(l,r)=min(a_l,a_{l+1},- ...

  7. poj 3250 Bad Hair Day (单调栈)

    http://poj.org/problem?id=3250 Bad Hair Day Time Limit: 2000MS   Memory Limit: 65536K Total Submissi ...

  8. POJ 2796 Feel Good 【单调栈】

    传送门:http://poj.org/problem?id=2796 题意:给你一串数字,需要你求出(某个子区间乘以这段区间中的最小值)所得到的最大值 例子: 6 3 1 6 4 5 2 当L=3,R ...

  9. POJ 2796 Feel Good(单调栈)

    传送门 Description Bill is developing a new mathematical theory for human emotions. His recent investig ...

随机推荐

  1. idea设置自定义图片

    看图操作哈: 1. 2. 逼格满满:

  2. MP4文件格式的解析,以及MP4文件的分割算法

    http://www.cnblogs.com/haibindev/archive/2011/10/17/2214518.html http://blog.csdn.net/pirateleo/arti ...

  3. SpringMvc自动代理

    自动配置的好处是不需要挨个 实现[org.springframework.aop.framework.ProxyFactoryBean] ,只需要 advisor 配置和 <bean id=&q ...

  4. 【转】php和java之间rsa加密互通

    以下是php封装好的类,引入即可使用 <?php /** * 作者:pjp * 邮箱:vippjp@163.com */ class RSA{ private $privateKey='';// ...

  5. WPF中的ListBox实现按块显示元素的方法

    本文实例讲述了WPF中的ListBox实现按块显示元素的方法.分享给大家供大家参考,具体如下: 注意:需要设置ListBox的属性 ScrollViewer.HorizontalScrollBarVi ...

  6. windows 2008配置运行PHP5.5.X

    1.安装web5.0平台安装程序.web5.0平台安装程序:http://www.iis.net/downloads (实际上更方便的是用WebPlalform安装PHP:http://www.mic ...

  7. VS2017快捷键

    1.回到上一个光标位置/前进到下一个光标位置 (1)回到上一个光标位置:使用组合键“Ctrl + -”; (2)前进到下一个光标位置:“Ctrl + Shift + - ”. 2.复制/剪切/删除整行 ...

  8. Jmeter文章索引贴

    一.基础部分: 使用Jmeter进行http接口测试 Jmeter之Http Cookie Manager Jmeter之HTTP Request Defaults Jmeter之逻辑控制器(Logi ...

  9. Times[2017-01-25at JiNan]

    Times[问题描述 ]小 y 作为一名资深的 dotaer,对视野的控制有着深刻的研究.每个单位在一段特定的时间内会出现在小 y 的视野内,除此之外的时间都在小 y 看不到的地方.在小 y 看来,视 ...

  10. JavaScript如何判断非空

    JavaScript判断非空的语句一般为: var elvis; if (typeof elvis !== "undefined" && elvis !== nul ...