单调栈+前缀和 || Nowcoder || 牛客小白月赛13 || 小A的柱状图
题面:小A的柱状图
题解:无
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#define ll long long
#define max(a,b) ((a)>(b)?(a):(b))
using namespace std;
inline ll rd(){
ll x=;char c=getchar();
while(c<''||c>''){c=getchar();}
while(c>=''&&c<=''){x=x*+c-''; c=getchar();}
return x;
}
const ll maxn=(1e6)+;
ll N,A[maxn],H[maxn],sig[maxn],S[maxn],L[maxn],R[maxn],top,ans;
//前缀和维护A[i]
//用两个单调栈,分别从左往右和从右往左找出第一个小于H[i]的数的位置
int main(){
N=rd();
for(int i=;i<=N;i++){
A[i]=rd();
sig[i]=sig[i-]+A[i];
}
for(int i=;i<=N;i++){
H[i]=rd();
ans=max(ans,A[i]*H[i]);
}
top=;S[top]=;L[]=;
for(int i=;i<=N;i++){
while(top>=&&H[S[top]]>=H[i])top--;
L[i]=S[top];
S[++top]=i;
}
top=;S[top]=N;R[N]=;
for(int i=N-;i>=;i--){
while(top>=&&H[S[top]]>=H[i])top--;
R[i]=S[top];
if(R[i]==)R[i]=N+;
S[++top]=i;
}
for(int i=;i<=N;i++)
ans=max(ans,(sig[R[i]-]-sig[L[i]])*H[i]);
printf("%lld\n",ans);
return ;
}
By:AlenaNuna
单调栈+前缀和 || Nowcoder || 牛客小白月赛13 || 小A的柱状图的更多相关文章
- 牛客小白月赛13 小A的柱状图(单调栈)
链接:https://ac.nowcoder.com/acm/contest/549/H来源:牛客网 题目描述 柱状图是有一些宽度相等的矩形下端对齐以后横向排列的图形,但是小A的柱状图却不是一个规范的 ...
- 牛客小白月赛13 小A的回文串(Manacher)
链接:https://ac.nowcoder.com/acm/contest/549/B来源:牛客网 题目描述 小A非常喜欢回文串,当然我们都知道回文串这种情况是非常特殊的.所以小A只想知道给定的一个 ...
- 牛客小白月赛13 小A的最短路(lca+RMQ)
链接:https://ac.nowcoder.com/acm/contest/549/F来源:牛客网 题目描述 小A这次来到一个景区去旅游,景区里面有N个景点,景点之间有N-1条路径.小A从当前的一个 ...
- 牛客小白月赛13 小A买彩票 (记忆化搜索)
链接:https://ac.nowcoder.com/acm/contest/549/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...
- 牛客小白月赛13-J小A的数学题 (莫比乌斯反演)
链接:https://ac.nowcoder.com/acm/contest/549/J来源:牛客网 题目描述 小A最近开始研究数论题了,这一次他随手写出来一个式子,∑ni=1∑mj=1gcd(i,j ...
- 小白月赛13 小A的柱状图 (单调栈)
链接:https://ac.nowcoder.com/acm/contest/549/H来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...
- NowCoder -- 牛客小白月赛10
A--勘测 推下公式 a[i] = a[i-1] + a[i-2] +2 #include<stdio.h> #include<string.h> ]; int main() ...
- 牛客小白月赛13 G(双向搜索)
AC通道 两边同步搜,一步里面A走一次B走两次,遇到对方走过的地方就得到了答案. #include <bits/stdc++.h> using namespace std; const i ...
- 牛客小白月赛13 E(图、矩阵幂)
AC通道 如果建立第一天某点到某点有几条路的矩阵,做k次矩阵乘就是第k天某点到某点有几条路.统计即可. #include <bits/stdc++.h> using namespace s ...
随机推荐
- ansible入门及组件介绍
Ansible简介 Ansible是自动化运维的工具,基于Python开发,实现了批量系统配置.批量程序部署.批量运行命令等功能.Ansible是基于模块工作的,ansible提供一个框架,通过模块实 ...
- python 三大框架之一Django入门
Django 是从真实世界的应用中成长起来的,它是由 堪萨斯(Kansas)州 Lawrence 城中的一个 网络开发小组编写的. 它诞生于 2003 年秋天,那时 Lawrence Journal- ...
- innobackupex的流备份【转】
并行备份 innobackupex -p123123 --parallel= /backup 节流备份(节省IO) innobackupex -p123123 --throttle= /backup ...
- .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
原因是缺少了启动文件,startup_xxx.s,只需要把该文件添加到项目下即可,该文件如果找不到则重新建立工程,每个新的工程建立后系统都会询问是否添加启动文件,选择添加启动文件即可. 注意选择对应容 ...
- android SDK模拟器环境搭建
一.下载安装android SDK 两种方式: (1)官网下载(需FQ):https://developer.android.com/studio/index.html (2)无需FQ下载:http: ...
- 使用Java方式连接HDFS
IDEA中新建Maven工程,添加POM依赖, 在IDE的提示中, 点击 Import Changes 等待自动下载完成相关的依赖包. <?xml version="1.0" ...
- vue-cli新版 -- 记录
1.新版Vue CLI 项目天生支持 PostCSS.CSS Modules 和包含 Sass.Less.Stylus 在内的预处理器. 所以安装了less后者sass可以直接使用,不需要再像以前在w ...
- Sqlserver 锁(转)
转载 http://www.cnblogs.com/zhouqianhua/archive/2011/04/15/2017049.html 总结: 锁的种类: 共享锁\排它锁\更新锁\意向锁\计 ...
- Java模拟耗时任务异步执行
说明:耗时任务开启单独线程处理,任务线程处理完毕通知主线程 1.回调接口定义 public interface ResponseCallBack { public void printMsg(Stri ...
- 重新学习Java的开始~
安装jdk的步骤及解释已经在这篇文章中详细阐述了,如下: http://www.cnblogs.com/godtrue/p/4338323.html 1.如何安装库源文件--摘自coreJava 库源 ...