LC的课后辅导

发布时间: 2015年9月19日 21:42   时间限制: 1000ms   内存限制: 256M

描述

有一天,LC给我们出了一道题,如图:

这个图形从左到右由若干个 宽为1 高不确定 的小矩形构成,求出这个图形所包含的最大矩形面积。

输入

多组测试数据
每组测试数据的第一行为n(0 <= n <= 100), 表示图形有n个小矩形构成
接下来一行输入n个整数h1, h2...hn(0 <= hi <= 1000), 表示每个小矩形的高度
n为0时程序结束

输出

仅输出一行表示面积的最大值

样例输入1  复制

7
2 1 4 5 1 3 3
4
1000 1000 1000 1000
0

样例输出1

8
4000
遍历每一个点,确定出该点可以延伸到的端点,就确定了矩形的底,再乘以该点的值就是面积

#include<stack>
#include<cstdio>
#include<climits>
using namespace std;
const int M = 105;
int a[M];
int L[M];
int R[M];
stack<int> st;
int main()
{int n;while(~scanf("%d", &n)&&n){for(int i=1;i<=n;i++){scanf("%d", &a[i]);}while(st.size())st.pop();for(int i=1;i<=n;i++)//确定左端点{while(!st.empty()&&a[st.top()]>=a[i])st.pop();if(st.empty())L[i] = 1;elseL[i] = st.top() + 1;st.push(i);}while(st.size())st.pop();for(int i=n;i>0;i--)//确定右端点{while(!st.empty()&&a[st.top()]>=a[i])st.pop();if(st.empty())R[i] = n;elseR[i] = st.top() - 1;st.push(i);}int ans=INT_MIN,tmp;for(int i=1;i<=n;i++){tmp = (R[i] - L[i] + 1)*a[i];ans = max(ans, tmp);}printf("%d\n", ans);}return 0;
}

qduoj LC的课后辅导(单调栈)相关推荐

  1. QDUOJ LC的课后辅导 单调递增栈

    LC的课后辅导 发布时间: 2015年9月19日 21:42   时间限制: 1000ms   内存限制: 256M 描述 有一天,LC给我们出了一道题,如图: 这个图形从左到右由若干个 宽为1 高不 ...

  2. qduoj LC的课后辅导

    LC的课后辅导 发布时间: 2015年9月19日 21:42   时间限制: 1000ms   内存限制: 256M 描述 有一天,LC给我们出了一道题,如图: 这个图形从左到右由若干个 宽为1 高不 ...

  3. LC的课后辅导 QDU

    点击打开链接 此题暴力可过(O(n^2)) 亦可用栈优化(O(n)) 即通过栈保存矩形编号 找出每个矩形左右可到达的最远边界 例如从左至右遍历 遍历至哪个矩形 该矩形的左边界即可得 假设遍历至h[i] ...

  4. BZOJ 4826: [Hnoi2017]影魔 单调栈 主席树

    https://www.lydsy.com/JudgeOnline/problem.php?id=4826 年少不知空间贵,相顾mle空流泪. 和上一道主席树求的东西差不多,求两种对 1. max(a ...

  5. 青春野狼不做姐控偶像的梦 - 线段树 - 扫描线 - 单调栈

    题目大意:给你一个排列,多次询问,每次给你一个区间,问有多少子区间,数字取出来sort一遍是连续的一段. 题解: 考虑l=1,r=n咋做. 考虑一段合法,当且仅当max-min=r-l. 那么用个单调 ...

  6. 算法学习 (门徒计划)4-2 单调栈(Monotone-Stack)及经典问题 学习笔记

    算法学习 (门徒计划)4-2 单调栈(Monotone-Stack)及经典问题 学习笔记 前言 单调栈 基础 性质 代码实现 总结 经典例题 LeetCode 155. 最小栈 (基础) 解题思路 L ...

  7. [附源码]计算机毕业设计Python+uniapp课后辅导管理微信小程序n8184(程序+lw+远程部署)

    [附源码]计算机毕业设计Python+uniapp课后辅导管理微信小程序n8184(程序+lw+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Pyth ...

  8. POJ2796 Feel Good(单调栈)

    题意: 给出一列数据,要求一个区间内最小值与区间内数据总和乘积最大值 要点: 还是单调栈,这次我自己写的,先做了几题比较简单的果然还是有效果的,这题也是一样,按点遍历,网上大神做的是直接遍历一次即可, ...

  9. 【单调栈 前缀和 异或】7.21序列求和

    还要再细细思考的奇妙思路 题目描述 小A最近喜欢上了关于区间max的问题.她定义一个区间的价值是max(ai)(l<=i<=r)∗(alxoral+1xor...xorar)max(ai) ...

最新文章

  1. java hashset应用_三.java集合的应用
  2. XenDesktop7-基于SCVMM2012SP1的部署
  3. HTML5语义化的理解
  4. php源码编程,10个小技巧让你做好php源码编程
  5. mpvue开发小程序分享朋友圈无法自定义标题解决方法
  6. OceanBase在蚂蚁金服的智能运维实践之路
  7. mysql性能仪表盘_mysql-笔记-性能
  8. python计算密集型任务_Python多进程和多线程测试比高低,只为证明谁是最快的“仔”
  9. java aop设计_Spring4.x基础配置(三):Spring AOP
  10. python蚁群算法可视化_蚁群算法原理及其实现(python)
  11. C++ template 学习归纳总结4
  12. 「解决方案」5G基站电气监控云平台
  13. 解决NBSI安装显示“MSINET.OCX组件无法加载或其中有组件失败”
  14. win10支持8t 硬盘_WIN8.1/ WIN10磁盘分区详解
  15. Jetpack 系列之AppSearch
  16. Linux 自检和 SystemTap
  17. Word/Excel文档操作API哪家强?一张表带你了解Aspose和Spire系列全功能对比
  18. matlab的title太长,如何换行?
  19. 洛谷P4408 [NOI2003]逃学的小孩
  20. 打造数字生活新体验,华为终端云服务在盘算什么?

热门文章

  1. Buuctf-[GXYCTF2019]BabyUpload
  2. 100天精通Python(可视化篇)——第83天:matplotlib绘制不同种类炫酷箱形图参数说明+代码实战(水平、缺口、群组、堆叠、核密度、小提琴箱形图)
  3. Python itertools模块
  4. Java IO体系结构图
  5. Windows下搭建MQTT服务器
  6. 【微信小程序】 解决“enablePullDownRefresh“: true下拉刷新还是不起作用
  7. 【软考学习2】数据表示——原码 反码 补码 移码
  8. Chapter3:机器人系统设计
  9. 在花千骨手游中快速获得勾玉的四种途径
  10. SpringMVC常见面试题总结(超详细回答)