题意:

给出一组矩形的高,求最多能拼成矩形的最大面积,看图就很清楚了。

要点:

还是单调栈,现在有点感觉了,单调栈大概就是能求出当前值左右的比它大或小的数的范围。这题用高度作为单调栈,分别往左右找比当前高度大的数的范围,最后求个面积即可。

15402130 Seasonal 2559 Accepted 1440K 157MS C++ 823B 2016-04-17 10:59:21
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define maxn 100005
int a[maxn],stack[maxn];
int l[maxn], r[maxn];int main()
{int n, i, j,top;while (scanf("%d",&n)&&n){for (int i = 1; i <= n; i++)scanf("%d", &a[i]);top = 0;for (i = 1; i <= n; i++){while (top > 0 && a[stack[top - 1]] >= a[i])//寻找左边界top--;l[i] = top == 0 ? 1 : stack[top-1]+1;//如果大于栈顶,要+1来使左边界位于当前值,同样小于栈顶也要+1,因为栈顶肯定不能在边界内stack[top++] = i;}top = 0;for (i = n; i >= 1; i--){while (top >0&&a[stack[top - 1]] >= a[i])//倒序寻找右边界top--;r[i] = top == 0 ? n : stack[top-1]-1;stack[top++] = i;}long long max = -1;for (i = 1; i <= n; i++)if (max < (long long)a[i] * (r[i] - l[i]+1))//边界之差要+1max = (long long)a[i] * (r[i] - l[i]+1);printf("%lld\n", max);}return 0;
}

转载于:https://www.cnblogs.com/seasonal/p/10343778.html

POJ2559 Largest Rectangle in a Histogram(单调栈)相关推荐

  1. HDU1506 / POJ2339 Largest Rectangle in a Histogram 单调递减栈

    1.什么是单调栈 具有单调性和栈的性质 单调递减栈就是从栈底到栈顶是单调递减的 单调递增栈就是从栈底到栈顶是单调递增的 2.单调栈解决的问题 以自己为最小值,找到最长的区间:单调递增栈 以自己为最大值 ...

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

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

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

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

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

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

  5. *【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 ...

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

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

  7. poj 2559 Largest Rectangle in a Histogram 栈

    // poj 2559 Largest Rectangle in a Histogram 栈 // // n个矩形排在一块,不同的高度,让你求最大的矩形的面积(矩形紧挨在一起) // // 这道题用的 ...

  8. 【Python CheckiO 题解】Largest Rectangle in a Histogram

    CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...

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

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

最新文章

  1. 第一章 Linux内核简介
  2. Vue路由传参及传参后刷新导致参数消失处理
  3. java strlen,跟妹妹聊到 Java 16 新特征,真香!
  4. C++之安装boost库
  5. 十进制转换成二进制java_计算机为什么采用二进制?
  6. gis怎么改鼠标滚轮缩放_【精华】ArcGIS鼠标滚轮
  7. 你的不自律,正在慢慢毁掉你
  8. c盘python27文件夹可以删除嘛_C盘的哪些文件夹可以删
  9. kibana异常 License information from the X-Pack plugin could not be obtained from Elasticsearch
  10. IDEA学习篇——finds duplicated code提示
  11. 一个人一个微博、一个App一个故事:通过微博草根账号做英语学习App的“爱卡微口语”获晨脉创投天使投资
  12. excel自动增加序号
  13. GPU accelerated TensorFlow Lite / TensorRT applications - 3D Handpose project(Part A)项目简介
  14. 毕业设计 基于stm32的血压测量检测系统 - 物联网 单片机
  15. Python爬虫+数据可视化教学:分析猫咪交易数据
  16. 利用 Travis CI 把 Android 项目部署到 github
  17. poi-tl,根据word模板导出word(表格行循环,表格无表头的情况)
  18. 微信公众号如何做数据分析?4大模块34个关键指标
  19. 机器学习基础--math(21)--皮亚诺公理
  20. ElementUI中某一列插入组件(slot-scope=“scope“用法)

热门文章

  1. gitlab在centons环境下的安装及使用
  2. 20155230 2016-2017-2 《Java程序设计》第十周学习总结
  3. Python类的实例属性详解
  4. HDOJ 1247 HDU 1247 Hat’s Words ACM 1247 IN HDU
  5. c语言之 malloc函数详解 在堆中动态分配内存malloc和new的区别
  6. MFC中OnCtlColor的用法(改变控件颜色)
  7. MFC SetWindowPos
  8. mfc中的.rc和.rc2出错fatal error RC1015: cannot open include file 'res\ModalD
  9. 多线程—生产者消费者模式、银行家算法
  10. IOS基础之毛毛虫案例-重力