题目

链接: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

题解

突破点一:

它只告诉了每一个长方形的宽,没有办法直接求出老多个长方形的宽

所以我使用前缀和…

突破点二:

记住:单调栈可以解决

  1. 左/右第一个比他小/大的
  2. 排队问题中有没有人插队

这里,我从左往右来枚举方格,让他向左,向右扩展!

代码

#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牛客网的更多相关文章

  1. 小C的记事本_via牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/28537/G 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K,其他语 ...

  2. 算法题14 小Q歌单,牛客网,腾讯笔试题

    算法题14 小Q歌单,牛客网,腾讯笔试题 题目: 小Q有X首长度为A的不同的歌和Y首长度为B的不同的歌,现在小Q想用这些歌组成一个总长度正好为K的歌单,每首歌最多只能在歌单中出现一次,在不考虑歌单内歌 ...

  3. 吐泡泡_via牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/28537/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言 ...

  4. 栈和排序_via牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/26886/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语 ...

  5. 简单的数据结构_via牛客网

    题面 链接:https://ac.nowcoder.com/acm/contest/28537/K 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语 ...

  6. 牛牛与后缀表达式_via牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/28537/B 来源:牛客网 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 262144K,其他语 ...

  7. 好串_via牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/28537/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言 ...

  8. 算法题16 贪吃的小Q 牛客网 腾讯笔试题

    算法题16 贪吃的小Q 牛客网 腾讯笔试题 题目: 链接:https://www.nowcoder.com/questionTerminal/d732267e73ce4918b61d9e3d0ddd9 ...

  9. 牛客网 Wannafly挑战赛8 A.小Y和小B睡觉觉

    写了一会不想写了... A-小Y和小B睡觉觉 链接:https://www.nowcoder.com/acm/contest/57/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制: ...

随机推荐

  1. 实战|Hadoop大数据集群搭建

    一个执着于技术的公众号 前言 今天来为粉丝圆梦啦 话不多说,咱直接进入实战环节 实验环境: 主机名        IP地址                 角色 qll251       192.16 ...

  2. 使用 HDFS 协议访问对象存储服务

    背景介绍 原生对象存储服务的索引是扁平化的组织形式,在传统文件语义下的 List 和 Rename 操作性能表现上存在短板.腾讯云对象存储服务 COS 通过元数据加速功能,为上层计算业务提供了等效于 ...

  3. 【面试普通人VS高手系列】Spring中事务的传播行为有哪些?

    一个工作了2年的粉丝,私信了一个比较简单的问题. 说: "Spring中事务的传播行为有哪些?" 他说他能记得一些,但是在项目中基本上不需要配置,所以一下就忘记了. 结果导致面试被 ...

  4. vivo 万台规模 HDFS 集群升级 HDFS 3.x 实践

    vivo 互联网大数据团队-Lv Jia Hadoop 3.x的第一个稳定版本在2017年底就已经发布了,有很多重大的改进. 在HDFS方面,支持了Erasure Coding.More than 2 ...

  5. unity---脚本创建按钮

    脚本创建按钮 新建文件夹 Resources 方便引用图片 在文件Resources中新建Images,并且下载一个图片 没有图片,按钮内容无法显示 图片需要处理一下 Textrue Type 改为 ...

  6. 107_Power Pivot员工效率监控

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 1.背景 在劳动密集型行业中,员工效率是一个永恒的话题. 今天把零时用工的效率提升展示及效率监控建一个PP模型并输出. 达 ...

  7. C#实现找二维数组中的鞍点

    鞍点定义:该位置上的元素值在行中最大,在该列上最小 代码示例: using System; using System.Collections.Generic; using System.Linq; u ...

  8. 纯CSS如何禁止用户复制网页的内容?

    大家好,我是半夏,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注 点赞 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师-关注公众号:搞前端的半夏,了解更多前端知 ...

  9. 第06组 Beta冲刺 (1/6)

    目录 1.1 基本情况 1.2 冲刺概况汇报 1.郝雷明 2. 方梓涵 3.曾丽莉 4.黄少丹 5. 董翔云 6.杜筱 7.鲍凌函 8.詹鑫冰 9.曹兰英 10.吴沅静 1.3 冲刺成果展示 1.1 ...

  10. LightGBM原理与实践简记

    写在前面: LightGBM 用了很久了,但是一直没有对其进行总结,本文从 LightGBM 的使用.原理及参数调优三个方面进行简要梳理. 目录 开箱即用 quickstart sklearn 接口 ...