poj 2559 最大矩形面积(单调栈)
题目:输入一个整数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 最大矩形面积(单调栈)的更多相关文章
- Poj 2559 最大矩形面积 v单调栈 分类: Brush Mode 2014-11-13 20:48 81人阅读 评论(0) 收藏
#include<iostream> #include<stack> #include<stdio.h> using namespace std; struct n ...
- POJ2559最大矩形面积——单调栈
题目:http://poj.org/problem?id=2559 #include<iostream> #include<cstdio> using namespace st ...
- poj 2769 感觉♂良好 (单调栈)
poj 2769 感觉♂良好 (单调栈) 比尔正在研发一种关于人类情感的新数学理论.他最近致力于研究一个日子的好坏,如何影响人们对某个时期的回忆. 比尔为人的一天赋予了一个正整数值. 比尔称这个值为当 ...
- 51nod 1102 面积最大的矩形(单调栈)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1102 题意: 思路: 做法就是求出每个长方形向左向右所能延伸的最大距离. ...
- POJ 2082 Terrible Sets(单调栈)
[题目链接] http://poj.org/problem?id=2082 [题目大意] 给出一些长方形下段对其后横向排列得到的图形,现在给你他们的高度, 求里面包含的最大长方形的面积 [题解] 我们 ...
- 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},- ...
- poj 3250 Bad Hair Day (单调栈)
http://poj.org/problem?id=3250 Bad Hair Day Time Limit: 2000MS Memory Limit: 65536K Total Submissi ...
- POJ 2796 Feel Good 【单调栈】
传送门:http://poj.org/problem?id=2796 题意:给你一串数字,需要你求出(某个子区间乘以这段区间中的最小值)所得到的最大值 例子: 6 3 1 6 4 5 2 当L=3,R ...
- POJ 2796 Feel Good(单调栈)
传送门 Description Bill is developing a new mathematical theory for human emotions. His recent investig ...
随机推荐
- 完好用户体验: 活用window.location与window.open解决页面跳转问题
原文地址: JavaScript Redirects and window.open原文日期: 2014年08月27日翻译日期: 2014年08月31日翻译人员: 铁锚 (译者注: 本文解决的是按 C ...
- 写一段代码,判断一个包括'{','[','(',')',']','}'的表达式是否合法(注意看样例的合法规则。) 给定一个表达式A,请返回一个bool值,代表它是否合法。
这道题比较奇怪,它的匹配规则并不是我们平时想想的那种匹配规则,例如:平时的匹配规则是().{}.[]才能匹配,本题中(和} .].)都能匹配.所以做题时要好好审题.另外,本题中给的测试用例是错误的. ...
- 多媒体开发之---h264 取流解码实现
解码器在解码时,首先逐个字节读取NAL的数据,统计NAL的长度,然后再开始解码. nal_unit( NumBytesInNALunit ) { /* NumBytesInNALunit为统计出来的 ...
- Mysql代码建外键问题
用下面代码建外键 运行之后 没有提示错误 但是打开建好的表格 外键并没有建立上 打开外键栏 里面并没有外键 在从表设置了外键列里面输入东西没有任何限制 成功建立应该是下面这样 什么情况???????? ...
- 申请edu邮箱
https://blog.csdn.net/w305607610/article/details/86771593 手把手教你申请CCC(City Colleges of Chicago)教育邮箱 台 ...
- S2S4H整合注意问题
整合过程中出现问题记录: 1.The import javax.servlet.http.HttpServletRequest cannot be resolved 解决办法:在tomcat的lib目 ...
- 九度OJ 1006:ZOJ问题 (递归)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:18621 解决:3197 题目描述: 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC. 是否AC的规则如下: 1. ...
- 关于js全局变量数组push数据时dom中无数据的问题
今天着实悲催,这问题整了好几个小时才解决.废话不多说,上问题. 一开始我定义了许多全局变量放在me下. var me = { dgOrderDetails: null, dgVisitNumbers: ...
- Richard Stallman's computer
What hardware do you use? I am using a Lemote Yeelong, a netbook with a Loongson chip and a 9-inch d ...
- LeetCode:跳跃游戏【55】
LeetCode:跳跃游戏[55] 题目描述 给定一个非负整数数组,你最初位于数组的第一个位置.数组中的每个元素代表你在该位置可以跳跃的最大长度.判断你是否能够到达最后一个位置. 示例 1: 输入: ...