【CSP201312-3】最大的矩形,单调栈
problem
201312-3
试题名称: 最大的矩形
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述
在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。
请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。
输入格式
第一行包含一个整数n,即矩形的数量(1 ≤ n ≤ 1000)。
第二行包含n 个整数h1, h2, … , hn,相邻的数之间由空格分隔。(1 ≤ hi ≤ 10000)。hi是第i个矩形的高度。
输出格式
输出一行,包含一个整数,即给定直方图内的最大矩形的面积。
样例输入
6
3 1 6 5 2 3
样例输出
10
solution
我就说好像在哪写过,出门右拐POJ2559,2018年的原题代码一字不改丢上去AC。。。
虽然现在未必能写的出单调栈,,我知道自己越学越菜系列。。。
但是CSP可以带模板和书进去啊啊啊什么鬼。。。。
https://gwj1314.blog.csdn.net/article/details/81513728
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long LL;
const int maxn = 1e5+10;
int n, a[maxn], s[maxn], w[maxn];
int main(){while(cin>>n &&n){LL ans = 0, p = 0;for(int i = 1; i <= n; i++)scanf("%d",&a[i]);a[n+1] = 0;for(int i = 1; i <= n+1; i++){if(a[i]>s[p])s[++p]= a[i], w[p] = 1;else {int width = 0;while(s[p]>a[i]){width += w[p];ans = max(ans, (LL)width*s[p]);p--;}s[++p] = a[i], w[p] = width+1;}}cout<<ans<<'\n';}return 0;
}
【CSP201312-3】最大的矩形,单调栈相关推荐
- 直方图中最大的矩形(遍历与单调栈)
给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [ ...
- 51Nod 1102 面积最大的矩形 +1272 最大距离 单调栈
51Nod 1102 面积最大的矩形 记笔记记笔记:对于区间最值与区间长度/和等的问题,用单调栈来维护区间端点. 这里来补一补单调栈和单调队列的基础知识: 单调栈: ...
- leetcode 1504. Count Submatrices With All Ones | 1504. 统计全 1 子矩形(单调栈)
题目 https://leetcode.com/problems/count-submatrices-with-all-ones/ 题解 本题与 leetcode 84. Largest Rectan ...
- leetcode 85. Maximal Rectangle | 85. 最大矩形(单调栈)
题目 https://leetcode.com/problems/maximal-rectangle/ 题解 本题与 leetcode 84. Largest Rectangle in Histogr ...
- [Leedcode][JAVA][第84题][柱状图中最大的矩形][暴力][单调栈]
[问题描述][困难] 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 .求在该柱状图中,能够勾勒出来的矩形的最大面积.以上是柱状图的示例,其中每个柱子的宽度为 1 ...
- 【LeetCode笔记】84. 柱状图中最大的矩形(字符串、单调栈)
文章目录 题目描述 思路 && 代码 二刷 题目描述 和接雨水有点像,但是具体做法还是有点不同. 思路 && 代码 暴力法只能过 94 / 96 的样例:复杂度O(n^ ...
- LeetCode--85.最大矩形(单调栈)
最大矩形(单调栈) 1. 题目描述 2. 题目分析 3. C语言实现 1. 题目描述 难度:困难 2. 题目分析 这道题目似曾相识啊,最大矩形面积的问题我们在LeetCode84.柱状图中最大的矩形也 ...
- LeetCode--84.柱状图中最大的矩形(暴力法,单调栈)
柱状图中最大的矩形(暴力法,单调栈) 1. 题目描述 2. 题目分析 3. C语言实现 3.1 暴力法 3.2 单调栈 4. Java实现 1. 题目描述 难度:困难 2. 题目分析 这道题有两种解法 ...
- 的input最大长度_LeetCode 84 | 单调栈解决最大矩形问题
今天是LeetCode专题第52篇文章,我们一起来看LeetCode第84题,Largest Rectangle in Histogram(最大矩形面积). 这道题的官方难度是Hard,点赞3581, ...
- 直方图中最大的矩形(单调栈2)
题目描述 直方图是由在公共基线处对齐的一系列矩形组成的多边形. 矩形具有相等的宽度,但可以具有不同的高度. 例如,图例左侧显示了由高度为2,1,4,5,1,3,3的矩形组成的直方图,矩形的宽度都为1: ...
最新文章
- Leetcode 190. 颠倒二进制位 解题思路及C++实现
- 用Axis创建的Webservice的集成与发布
- 【Python】吐槽SQLAlchemy
- ProE复杂曲线方程:Python Matplotlib 版本代码(L系统,吸引子和分形)
- vector内存扩容
- 最可怕的企业“内卷化”,是走入以下10个误区而不自知
- JavaScript函数之实际参数对象(arguments) / callee属性 / caller属性 / 递归调用 / 获取函数名称的方法...
- c# char unsigned_C 中 char、signed char 和 unsigned char 的区别
- 高阶篇:8.2)注塑模具讨论要点(讨模评审)
- 20140115-URL编码与解码
- java创建集合有的不用泛型_Java如何创建泛型集合?
- html5 figure 标签
- 为openstack制作windows镜像
- 房屋租赁管理系统 基于SSM框架
- 安卓10不支持qmc解码_基于安卓10的LineageOS 17.1来了,支持一加、小米、LG等机型...
- imp oracle reschema_oracle中imp命令详解(导入数据库)
- SageMath域上多项式操作
- 金蝶系统登不上服务器270,电脑进不了金蝶软件,显示Automation错误270
- 全球及中国建筑涂料市场产量格局与盈利前景状况分析报告2022版
- MySQL的Logo为 标志_MySQL 的Logo为[ ]标志,海豚代表了速度、动力、精确等MySQL所拥有的特性。_国际贸易基础知识答案_学小易找答案...