【题目描述】:

地面上从左到右并排紧挨着摆放多个矩形,已知这此矩形的底边宽度都为1,高度不完全相等。求在这些矩形包括的范围内能得到的面积最大的矩形,打印出该面积。所求矩形可以横跨多个矩形,但不能超出原有矩形所确定的范围。

如 n = 7, 序列为2 1 4 5 1 3 3

          _                       _           _ | |                   _ | |          | || |    _  _          |H||H|    _  _  _    | || |   | || |    _    |H||H|   | || |
| | _ | || | _ | || |   | | _ |H||H| _ | || |
|_||_||_||_||_||_||_|   |_||_||H||H||_||_||_| 

最大面积:8

【输入描述】:

输入有多组数据,每组数据一行:

第一个数N,表示矩形个数

后面跟N个正整数,第i个正整数hi表示第i个矩形的高度。

最后一行,以一个单独的0结束。

【输出描述】:

每组输入数据一行,一个数表示最大矩形面积。

【样例输入】:

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

【样例输出】:

8
4000

【时间限制、数据范围及描述】:

时间:1s 空间:64M

30 %: 1<=N<=100

60 %: 1<=N<=1,000

100%: 1<=N<=500,000,0<=hi<=1,000,000,000

题解:问题可简化为两个子问题,每找到一个点,查找左第一个比他大的,右边第一个比她大的。

(这里用单调栈即可)两坐标之差再乘上i的高度即可得出答案。

#include <iostream>
#include <cstdio>
#include <cstring>
#define MAX_N 500005
using namespace std;int main()
{int n;while(~scanf("%d",&n)&&n){int a[MAX_N];int l[MAX_N],r[MAX_N];for(int i=1;i<=n;i++)scanf("%d",&a[i]);l[0]=0,l[n+1]=0;for(int i=1;i<=n;i++){int k=i-1;if(a[i]<=a[k]){while(k>0&&a[i]<=a[k]) k=l[k]-1; }l[i]=k+1;}for(int i=n;i>=1;i--){int k=i+1;if(a[i]<=a[k]){while(k<n+1&&a[i]<=a[k]) k=r[k]+1;}r[i]=k-1;}long long maxn=-1;for(int i=1;i<=n;i++){long long s=(long long)(r[i]-l[i]+1)*a[i];if(s>maxn) maxn=s;}printf("%lld\n",maxn);}return 0;
}

转载于:https://www.cnblogs.com/wuhu-JJJ/p/11205744.html

【UOJ 48】最大矩形面积(修正版)相关推荐

  1. sdut 2401 最大矩形面积

    1http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2401 /* 2 最大矩形面积,把边界点加上 ...

  2. 【HDU 1542】Atlantis 矩形面积并(线段树,扫描法)

    [题目] Atlantis Problem Description There are several ancient Greek texts that contain descriptions of ...

  3. Picture Box(1) 修正版

    在前面一篇文章中,我介绍了一个Picture Box控件,看这里! 最近我在一个小项目中,使用了这个控件,当然,是做过更改后的,主要修正了一个Bug,然后增加了三个函数,用于在图片上面画一些矩形框和标 ...

  4. C语言程序设计(第2版)答案修正版 C语言程序设计(第2版)课后习题答案

    C语言程序设计(第2版)答案修正版 C语言程序设计(第2版)课后习题答案 第一章 1.请参照本章例题,编写一个C程序,输出以下信息: ************************** Very g ...

  5. 语音计算矩形面积_LeetCode85-最大矩形

    今天在制作书签的时候 突然想到了一个问题 如果要送给未来的女朋友一个书签 上面该写些什么话 哈哈哈哈哈哈哈哈哈 The Spring is coming! 想了一会儿,觉得这句话最合适 To xxx: ...

  6. 编写矩形类 计算矩形面积

    编写矩形类 计算矩形面积 public class juxing {int a;int b; juxing(int a,int b){System.out.println("矩形面积s=&q ...

  7. 快车 FlashGet 3.1 修正版(1057)

    快车 FlashGet 3.1 修正版(1057) SM发布于 2009-06-25 23:43:23| 2326 次阅读 字体:大 小 打印预览 感谢VxuE的投递 快车(FlashGet)是互联网 ...

  8. 题目 1471:【蓝桥杯】【入门题】【基础练习VIP】矩形面积交

    题目 1471:矩形面积交 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 平面上有两个矩形 ...

  9. 计算机aoa综合题word,AOA-word综合题操作步骤(修正版)

    <AOA-word综合题操作步骤(修正版)>由会员分享,可在线阅读,更多相关<AOA-word综合题操作步骤(修正版)(7页珍藏版)>请在人人文库网上搜索. 1.AOA-WOR ...

最新文章

  1. 【怎样写代码】工厂三兄弟之抽象工厂模式(二):解决方案
  2. torch.clamp()
  3. 在python中要表示一个空的代码块可以使用空语句什么_Python条件判断语句if
  4. oracle tips ---------keep update
  5. 如何让普通人了解网络隐私的重要性
  6. mybatis模糊查询sqlserver和mysql的写法
  7. vfp mysql_请问:在VFP中如何连接MYSQL
  8. 解决mac按键精灵鼠标位置不准(连点器)
  9. 解决go合约fabric shim peer依赖问题
  10. Android:触摸移动的悬浮窗口
  11. linux 系统管理 实战技巧
  12. beyondcompare连接服务器
  13. 极客领航 C/C++|MCU|软件|物联网|嵌入式|Linux|辅助设计|飞行器
  14. 广告联盟如何获利变现引流?
  15. Python—SVD分解压缩图片
  16. el-table树形结构踩坑汇总
  17. 二叉树、B树、红黑树
  18. IObit Uninstaller 8.0中文专业版-软件卸载神器(内含注册码)
  19. PTN与 IPRAN技术简介
  20. 泰达机器人董事长_创新驱动湾区智造,2018深圳机器人创新与发展论坛成功举行...

热门文章

  1. myeclipse运行java项目_myeclipse运行自己从前的或其他人的javaweb项目
  2. Python3——函数
  3. mysql存储过程触发器游标_MySQL存储过程,触发器,游标
  4. Redis持久化_Redis事务_Redis删除策略
  5. LeetCode MySQL 1193. 每月交易 I(date_format)
  6. LeetCode 1033. 移动石子直到连续
  7. 程序员面试金典 - 面试题 16.03. 交点(数学)
  8. LeetCode 139. 单词拆分(DP)
  9. paypal创建订单后怎么获得id_PayPal开放加密数字货币买卖 2021年将支持2600万家商户购物...
  10. npm安装vue_vue搭建脚手架的方式