SP1805 HISTOGRA - Largest Rectangle in a Histogram
---------------------------------------------------
我就是想学个单调栈然后全网都是个蓝题
---------------------------------------------------
连接:
---------------------------------------------------
(字都在注释上)
#include<iostream>
#include<stack>
#include<cstdio>
#include<cstring>
using namespace std;
struct s{
long long w;
long long h;
};
long long high[];
stack <s>st;
long long n;
long long deal(){
long long ans=;
s now;
now.w=;
now.h=;
st.push(now);//初始化
for(long long i=;i<=n+;++i){ //n+1是因为n+1是个零,所以说可以清空栈
long long nw=;
if(high[i]>st.top().h)//我们要维护的是一个递增的
{
now.w=;
now.h=high[i];
st.push(now);
}
else
{ while(st.top().h>high[i]){//单调栈的特性,一直弹出栈顶
nw+=(st.top()).w;//计算宽度的和
ans=max(ans,1ll*nw*st.top().h);//计算高
st.pop();
}
//这些弹出来的矩形不能扔,要和后面的合并
st.push((s){nw+,high[i]});//合并后放入
} }
return ans;
}
long long main(){
while(scanf("%lld",&n)&&n){ //poj就这样,要读入多个数据
for(long long i=;i<=n;++i){
scanf("%lld",&high[i]);
}
prlong longf("%lld\n",deal());
memset(high,,sizeof(high));//记得清零,我因为没清零wa了qwq
}
return ;
}
AC
SP1805 HISTOGRA - Largest Rectangle in a Histogram的更多相关文章
- SP1805 HISTOGRA - Largest Rectangle in a Histogram 题解
题目链接:https://www.luogu.org/problemnew/show/SP1805 分析: 我们可以用一个单调栈由低到高来存储它的高度,并用数组对每个高度记录一下它前面(包括它自己)一 ...
- 题解 POJ 2559-SP1805 【HISTOGRA - Largest Rectangle in a Histogram】
题目链接: https://www.luogu.org/problemnew/show/SP1805 http://poj.org/problem?id=2559 思路: ## 单调栈 首先如果所有矩 ...
- 【题解】Largest Rectangle in a Histogram [SP1805] [POJ2559]
[题解]Largest Rectangle in a Histogram [SP1805] [POJ2559] [题目描述] 传送: \(Largest\) \(Rectangle\) \(in\) ...
- poj 2559 Largest Rectangle in a Histogram - 单调栈
Largest Rectangle in a Histogram Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19782 ...
- 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 ...
- Largest Rectangle in a Histogram(DP)
Largest Rectangle in a Histogram Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K ...
- POJ 2559 Largest Rectangle in a Histogram(单调栈)
传送门 Description A histogram is a polygon composed of a sequence of rectangles aligned at a common ba ...
- Largest Rectangle in a Histogram(HDU1506)
Largest Rectangle in a Histogram HDU1506 一道DP题: 思路:http://blog.csdn.net/qiqijianglu/article/details/ ...
- POJ 2559 Largest Rectangle in a Histogram
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18942 Accepted: 6083 Description A hi ...
随机推荐
- 解决git报错:error: RPC failed; curl 18 transfer closed with outstanding read data remaining 的方法
报错信息: error: RPC failed; curl 18 transfer closed with outstanding read data remainingfatal: the remo ...
- java架构之路-(netty专题)初步认识BIO、NIO、AIO
本次我们主要来说一下我们的IO阻塞模型,只是不多,但是一定要理解,对于后面理解netty很重要的 IO模型精讲 IO模型就是说用什么样的通道进行数据的发送和接收,Java共支持3种网络编程IO模式: ...
- 使用ClouderaManager管理的HBase的RegionServer无法启动(启动失败)的问题
问题概述 "新冠期间"远程办公,需要重新搭建一套ClouderaManager(CM)开发环境,一位测试同事发现HBase的RegionServer无法启动,在CM界面上启动总是失 ...
- 行人重识别和车辆重识别(ReID)中的评测指标——mAP和Rank-k
1.mAP mAP的全称是mean Average Precision,意为平均精度均值(如果按照原来的顺利翻译就是平均均值精度).这个指标是多目标检测和多标签图像分类中长常用的评测指标,因为这类任务 ...
- BZOJ 4034 [HAOI2015]树上操作(欧拉序+线段树)
题意: 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把某个节点 x 为根的子树中所有点的点权都增 ...
- 《剑指Offer》第二章(一)题 9 -12
第二章 面试题9:用两个栈实现队列 题目:如面试题,给你两个栈, 实现队列的先进先出,即在队列头删除一个元素以及在队列的尾部添加一个元素 思路:这个题的分析感觉很巧妙,从一个具体的例子入手,找出其中的 ...
- Go语言实现:【剑指offer】斐波那契数列
该题目来源于牛客网<剑指offer>专题. 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0) n<=39 Go语言实现: 递归: ...
- MySQL中遍历查询结果的常用API(c)
本中所使用的table: MySQL中的错误处理函数 unsigned int mysql_errno(MYSQL *mysql) const char *mysql_error(MYSQL *mys ...
- 安装Debian的磨磨唧唧
安装Debian的磨磨唧唧 唆使VMware罢工的微软 这两天心血来潮想折腾,拆了我亲爱的Ubuntu.装个Debian 不过因为加入了微软的insider版本 就很尴尬的发现当我打开我的VMware ...
- node基础 day1
js为什么能在浏览器中运行 浏览器内部存在一个js解析器,解析ECMAscript 把引擎从浏览器中抽离出来,不再依赖浏览器,作为一个软件安装在电脑上,在命令行里面, 这个软件就是node node ...