【UOJ 48】最大矩形面积(修正版)
【题目描述】:
地面上从左到右并排紧挨着摆放多个矩形,已知这此矩形的底边宽度都为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】最大矩形面积(修正版)相关推荐
- sdut 2401 最大矩形面积
1http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2401 /* 2 最大矩形面积,把边界点加上 ...
- 【HDU 1542】Atlantis 矩形面积并(线段树,扫描法)
[题目] Atlantis Problem Description There are several ancient Greek texts that contain descriptions of ...
- Picture Box(1) 修正版
在前面一篇文章中,我介绍了一个Picture Box控件,看这里! 最近我在一个小项目中,使用了这个控件,当然,是做过更改后的,主要修正了一个Bug,然后增加了三个函数,用于在图片上面画一些矩形框和标 ...
- C语言程序设计(第2版)答案修正版 C语言程序设计(第2版)课后习题答案
C语言程序设计(第2版)答案修正版 C语言程序设计(第2版)课后习题答案 第一章 1.请参照本章例题,编写一个C程序,输出以下信息: ************************** Very g ...
- 语音计算矩形面积_LeetCode85-最大矩形
今天在制作书签的时候 突然想到了一个问题 如果要送给未来的女朋友一个书签 上面该写些什么话 哈哈哈哈哈哈哈哈哈 The Spring is coming! 想了一会儿,觉得这句话最合适 To xxx: ...
- 编写矩形类 计算矩形面积
编写矩形类 计算矩形面积 public class juxing {int a;int b; juxing(int a,int b){System.out.println("矩形面积s=&q ...
- 快车 FlashGet 3.1 修正版(1057)
快车 FlashGet 3.1 修正版(1057) SM发布于 2009-06-25 23:43:23| 2326 次阅读 字体:大 小 打印预览 感谢VxuE的投递 快车(FlashGet)是互联网 ...
- 题目 1471:【蓝桥杯】【入门题】【基础练习VIP】矩形面积交
题目 1471:矩形面积交 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 平面上有两个矩形 ...
- 计算机aoa综合题word,AOA-word综合题操作步骤(修正版)
<AOA-word综合题操作步骤(修正版)>由会员分享,可在线阅读,更多相关<AOA-word综合题操作步骤(修正版)(7页珍藏版)>请在人人文库网上搜索. 1.AOA-WOR ...
最新文章
- 【怎样写代码】工厂三兄弟之抽象工厂模式(二):解决方案
- torch.clamp()
- 在python中要表示一个空的代码块可以使用空语句什么_Python条件判断语句if
- oracle tips ---------keep update
- 如何让普通人了解网络隐私的重要性
- mybatis模糊查询sqlserver和mysql的写法
- vfp mysql_请问:在VFP中如何连接MYSQL
- 解决mac按键精灵鼠标位置不准(连点器)
- 解决go合约fabric shim peer依赖问题
- Android:触摸移动的悬浮窗口
- linux 系统管理 实战技巧
- beyondcompare连接服务器
- 极客领航 C/C++|MCU|软件|物联网|嵌入式|Linux|辅助设计|飞行器
- 广告联盟如何获利变现引流?
- Python—SVD分解压缩图片
- el-table树形结构踩坑汇总
- 二叉树、B树、红黑树
- IObit Uninstaller 8.0中文专业版-软件卸载神器(内含注册码)
- PTN与 IPRAN技术简介
- 泰达机器人董事长_创新驱动湾区智造,2018深圳机器人创新与发展论坛成功举行...
热门文章
- myeclipse运行java项目_myeclipse运行自己从前的或其他人的javaweb项目
- Python3——函数
- mysql存储过程触发器游标_MySQL存储过程,触发器,游标
- Redis持久化_Redis事务_Redis删除策略
- LeetCode MySQL 1193. 每月交易 I(date_format)
- LeetCode 1033. 移动石子直到连续
- 程序员面试金典 - 面试题 16.03. 交点(数学)
- LeetCode 139. 单词拆分(DP)
- paypal创建订单后怎么获得id_PayPal开放加密数字货币买卖 2021年将支持2600万家商户购物...
- npm安装vue_vue搭建脚手架的方式