小A的柱状图_via牛客网
题目
链接:https://ac.nowcoder.com/acm/contest/28537/Q
来源:牛客网时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld题目描述
柱状图是有一些宽度相等的矩形下端对齐以后横向排列的图形,但是小A的柱状图却不是一个规范的柱状图,它的每个矩形下端的宽度可以是不相同的一些整数,分别为a[i]a[i]a[i],每个矩形的高度是h[i]h[i]h[i],现在小A只想知道,在这个图形里面包含的最大矩形面积是多少。
输入描述:
一行一个整数N,表示长方形的个数
接下来一行N个整数表示每个长方形的宽度
接下来一行N个整数表示每个长方形的高度
输出描述:
一行一个整数,表示最大的矩形面积
示例1
输入
7
1 1 1 1 1 1 1
2 1 4 5 1 3 3
输出
8
说明
样例如图所示,包含的最大矩形面积是8
备注:
1≤n≤1e6,1≤a[i]≤100,1≤h[i]≤1e91 \leq n \leq 1e6 , 1\leq a[i] \leq 100 ,1\leq h[i] \leq 1e91≤n≤1e6,1≤a[i]≤100,1≤h[i]≤1e9
题解
突破点一:
它只告诉了每一个长方形的宽,没有办法直接求出老多个长方形的宽
所以我使用前缀和…
突破点二:
记住:单调栈可以解决
- 左/右第一个比他小/大的
- 排队问题中有没有人插队
这里,我从左往右来枚举方格,让他向左,向右扩展!
代码
#include <iostream>
#include <stack>
using namespace std;
typedef long long LL;
const int MAX = 1e6 + 7;
int a_origin[MAX];
int a[MAX];
int h[MAX];
int left_[MAX];//左边比他小的方格所对应的前缀和
int right_[MAX];//右边比他小的方格所对应的前缀和
int main()
{
LL ans = 0;
ios::sync_with_stdio(false);
cout.tie(0);
cin.tie(0);
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a_origin[i];
a[i] = a_origin[i] + a[i - 1];
}
for (int i = 1; i <= n; i++)
{
cin >> h[i];
}
{//stack没有清空的选项,我只得创建代码块,让系统清除
stack<int>st;
for (int i = n; i > 0; i--)
{
while (!st.empty() && h[i] <= h[st.top()])
st.pop();
if (st.empty())
{
right_[i] = n + 1;//!!!!!!!!!!
st.push(i);
}
else
{
right_[i] = st.top();
st.push(i);
}
}
}
{
stack<int>st;
for (int i = 1; i <= n; i++)
{
while (!st.empty() && h[i] <= h[st.top()])
st.pop();
if (st.empty())
{
left_[i] = 0;//!!!!!!!!!!
st.push(i);
}
else
{
left_[i] = st.top();
st.push(i);
}
}
}
for (int i = 1; i <= n; i++)
{
LL tmp = (a[right_[i]-1] - a[left_[i]])*h[i];
ans = max(tmp, ans);
}
cout << ans;
return 0;
}
小A的柱状图_via牛客网的更多相关文章
- 小C的记事本_via牛客网
题目 链接:https://ac.nowcoder.com/acm/contest/28537/G 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K,其他语 ...
- 算法题14 小Q歌单,牛客网,腾讯笔试题
算法题14 小Q歌单,牛客网,腾讯笔试题 题目: 小Q有X首长度为A的不同的歌和Y首长度为B的不同的歌,现在小Q想用这些歌组成一个总长度正好为K的歌单,每首歌最多只能在歌单中出现一次,在不考虑歌单内歌 ...
- 吐泡泡_via牛客网
题目 链接:https://ac.nowcoder.com/acm/contest/28537/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言 ...
- 栈和排序_via牛客网
题目 链接:https://ac.nowcoder.com/acm/contest/26886/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语 ...
- 简单的数据结构_via牛客网
题面 链接:https://ac.nowcoder.com/acm/contest/28537/K 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语 ...
- 牛牛与后缀表达式_via牛客网
题目 链接:https://ac.nowcoder.com/acm/contest/28537/B 来源:牛客网 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 262144K,其他语 ...
- 好串_via牛客网
题目 链接:https://ac.nowcoder.com/acm/contest/28537/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言 ...
- 算法题16 贪吃的小Q 牛客网 腾讯笔试题
算法题16 贪吃的小Q 牛客网 腾讯笔试题 题目: 链接:https://www.nowcoder.com/questionTerminal/d732267e73ce4918b61d9e3d0ddd9 ...
- 牛客网 Wannafly挑战赛8 A.小Y和小B睡觉觉
写了一会不想写了... A-小Y和小B睡觉觉 链接:https://www.nowcoder.com/acm/contest/57/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制: ...
随机推荐
- 微服务生态组件之Spring Cloud OpenFeign详解和源码分析
Spring Cloud OpenFeign 概述 Spring Cloud OpenFeign 官网地址 https://spring.io/projects/spring-cloud-openfe ...
- Python学习4(字典的内存分布)
1.字典:是python数据类型之一,字典通过花括号来包含数据项,字典的每个元素由2个部分组成,键:值,字典是根据键来找对应的值. data = {"name": "Et ...
- 手脱UPX(3.91)
1.使用Detect It Easy进行查壳: 2.使用x32dbg打开该带壳程序,在选项->选项->异常中添加区间设置0~FFFFFFFF全忽略: 3.我们F9运行到程序入口处,看到了p ...
- 手把手教你 在IDEA搭建 SparkSQL的开发环境
1. 创建maven项目 在IDEA中添加scala插件 并添加scala的sdk https://www.cnblogs.com/bajiaotai/p/15381309.html 2. 相关依赖j ...
- 使用 AgileConfig 动态配置 NLog
NLog 是我们在 .NET 领域使用非常广泛的日志组件.它默认使用 xml 来维护它的配置.最近有几个同学问我当使用 AgileConfig 的时候如何配置 NLog .因为 AgileConfig ...
- JavaMetaweblogClient,Metaweblog的java实现-从此上传博客实现全平台
目录 1. 什么是Metaweblog? 2. Metaweblog的应用 3. 如何使用Metaweblog 4. 本项目介绍 4.1 metaweblog与java之间的关系映射 4.2 使用Ja ...
- 151-模型-Power BI&Power Pivot模型DAX函数使用量分析
151-模型-Power BI&Power Pivot模型DAX函数使用量分析 1.背景 我们在 Power BI 或者 Power Pivot 项目中会写很多的 DAX 表达式.在最后项目交 ...
- MongoDB 分片集群
每日一句 Medalist don't grow on trees, you have to nurture them with love, with hard work, with dedicati ...
- 分享JAVA的FTP和SFTP相关操作工具类
1.导入相关jar <!--FTPClient--><dependency> <groupId>commons-net</groupId> <a ...
- CentOS8安装mysql8.0具体步骤
操作系统:CentOS Linux release 8.0及以上 Mysql版本:Mysql 8.0.22 x86_64 (MySQL Community Server - GPL) Mysql8下载 ...