连接:http://acm.hdu.edu.cn/showproblem.php?pid=1506

题意:给一个柱状图,每个小矩形宽为1,求这个柱状图最大子矩形的面积

思路:用单调栈求出每个小矩形所能组成最大矩形的左宽和有宽,分别存在l[i] , r[i]数组里,然后 ans = max( h[i] * ( r[i] - l[i] )

注意:int * int 结果可能超过2^32

代码:

#include <iostream>
#include <algorithm>
#define ll long long
#define maxn 100000+100
//#define scanf scanf_susing namespace std;int n;
int h[maxn];
int l[maxn], r[maxn];
int st[maxn];void solve() {int t = 0;for (int i = 0; i < n; i++){while (t > 0 && h[st[t - 1]] >= h[i]) t--;l[i] = t == 0 ? 0 : (st[t - 1] + 1);st[t++] = i;}t = 0;for (int i = n-1; i >= 0; i--){while (t > 0 && h[st[t - 1]] >= h[i]) t--;r[i] = t == 0 ? n : st[t - 1];st[t++] = i;}ll res = 0;for (int i = 0; i < n; i++){res = max(res, 1ll*h[i] * (r[i] - l[i]));}printf("%lld\n", res);
}int main() {while (scanf("%d", &n) && n) {for (int i = 0; i < n; i++){scanf("%d", &h[i]);}solve();}return 0;
}

转载于:https://www.cnblogs.com/the-way-of-cas/p/9594573.html

HDU-Largest Rectangle in a Histogram-1506 单调栈相关推荐

  1. *【HDU - 1506】【POJ - 2559】Largest Rectangle in a Histogram(单调栈或动态规划)

    题干: Description A histogram is a polygon composed of a sequence of rectangles aligned at a common ba ...

  2. HDU 1506 解题报告 Largest Rectangle in a Histogram (单调栈)

    看题传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1506 题意比较明显,就是找以某一个矩形为高的最大的矩形.这个题可以用单调栈来求解,需要注意的是如果从 ...

  3. 【POJ2559】Largest Rectangle in a Histogram(单调栈)

    problem 给你一堆宽度为1,高度不同的矩形条. 问你能框出一个最大矩形面积为多少. solution 如果矩形高度递增,那么答案为每个元素最多能向右扩展多少. 如果矩形高度比上一个小,那么该矩形 ...

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

    题意:有n个高度不同的直方图,求直方图内最大的矩形面积. 分析: 1.若当前研究高度大于栈顶高度,则直接入栈.否则,边处理栈内所有高度大于等于当前高度的元素边出栈,在此过程中,边累加宽度边以当前栈顶元 ...

  5. luoguSP1805,POJ2559-Largest Rectangle in a Histogram【单调栈】

    正题 POJ题目链接:http://poj.org/problem?id=2559 luogu评测记录:https://www.luogu.org/recordnew/lists?uid=52918& ...

  6. HDU 1506 Largest Rectangle in a Histogram(dp、单调栈)

    你是不是飘了?骚年! Problem Description A histogram is a polygon composed of a sequence of rectangles aligned ...

  7. Largest Rectangle in a Histogram HDU - 1506 解题思路 单调栈

    原题目 Problem Description A histogram is a polygon composed of a sequence of rectangles aligned at a c ...

  8. hdu 1506 Largest Rectangle in a Histogram 最大矩形

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1506 Largest Rectangle in a Histogram Time Limit: 20 ...

  9. Largest Rectangle in a Histogram (动态规划+奇思妙想单调栈)求最大矩状图面积

    感觉动态规划都是玄妙的很,思维题吧(单调栈思维) 题解:让求最大矩形面积,宽为1,暴力超时 可以发现   当第i-1个比第i个高的时候   比第i-1个高的所有也一定比第i个高 于是可以用到动态规划的 ...

  10. 【单调栈】Largest Rectangle in a Histogram(luogu-SP1805/poj 2559)

    Largest Rectangle in a Histogram luogu-SP1805 poj 2559 题目大意: 有n个并排的矩阵,高度为aia_iai​,宽度为1,现在让求包含于这些矩阵的并 ...

最新文章

  1. PHp批量推送数据太慢,PHP非阻塞批量推送数据-php教程
  2. java 文件字节流_Java:文件字符流和字节流的输入和输出
  3. redis-redisTemplate模糊匹配删除
  4. Android 开源项目android-open-project工具库解析之(一) 依赖注入,图片缓存,网络相关,数据库orm工具包,Android公共库...
  5. 20应用统计考研复试要点(part26)--简答题
  6. 服务器通过响应头向浏览器设置cookie,http响应包括设置cookie jession id,但随后发送请求,请求标头中没有cookie信息...
  7. sql STUFF 分组
  8. HTTP2还没用上,HTTP3就出来了
  9. 第一阶段冲刺阶段项目总结
  10. Swift 5 从Model, Struct或Class转Dictionary
  11. 同时带多个文件生成软盘镜像的方法
  12. linux搜索word文档内容,在目录中搜索MS word文件以获取Linux中的特定内容
  13. Python爬虫QQ空间
  14. SpringBoot/Spring扩展点系列之FactoryBean让你不在懵逼 - 第435篇
  15. 五款最好用的记事本编程软件比UltraEdit强大
  16. LOJ#2863. 「IOI2018」组合动作 交互
  17. 靖哥哥教你如何安装chrome浏览器离线插件
  18. 2022-04-清华管理学-清华大学-宁向东
  19. Python基于Oxford-IIIT Pet Dataset实现宠物识别系统
  20. SD卡电平转换器 - NXS0506UP

热门文章

  1. seo全攻略_SaaS 企业推广获客全攻略(2):如何做好企业官网?
  2. nginx location 斜杠_【一点资讯】斜杠青年双·11买什么本最划算?光影精灵6让你做“多面娇娃” www.yidianzixun.com...
  3. Java笔记-spring-rabbitmq中使用@RabbitListener消费(手动确认,获header数据)
  4. JavaScript笔记-使用JS管理URL链接(前端小技巧)
  5. Qt文档阅读笔记-QNetworkAccessManager官方解析与实例
  6. C++工作笔记-多继承下的一个大坑
  7. Qt工作笔记-QTreeWidget顺序查找包含内容的字符串
  8. Qt工作笔记-XML文件的写入
  9. java NumberPad实现_JAVA语言编程思想
  10. 12c oracle 修改内存_还在等12.2吗?Oracle 12c后这个观念要改改!