The Preliminary Contest for ICPC China Nanchang National Invitational I.Max answer单调栈
//yxynb!
题意:一个5e5的数组,定义一个区间的值为 这个区间的和*这个区间的最小值,注意数组值有负数有正数,求所有区间中最大的值
题解:如果全是正数,那就是原题 POJ2796 单调栈做一下就ok
我们现在有负数,考虑这段区间,他的和必须是负数,由于导致和为负数,最小值一定也是负数,
那对于这样一个和为负的区间进行扩展的时候,遇见下一个数,是负数,我们一定会扩展,无论这个负数大小
遇见下一个是正数,如果和没有变正,那就可以继续扩展下去(不更新答案罢了)
所以我们对于那些和为负的区间,单独统计一下答案就好了,顺路就统计这个区间的最小值,因为一旦抛弃她就再也不会回头了!
所以压根不用线段树 ST表之类的,对于负数的和,整体按POJ2796做的取个min,就行了.复杂度O(n)
#include<bits/stdc++.h>
#define lld long long
#define N 500050
using namespace std;
int n;
lld a[N],sum[N],x[N],xx[N];
lld L[N],R[N],ansv,ans1;
int main ()
{
scanf("%d", &n);
for (int i=;i<=n;i++)
{
scanf("%lld",&x[i]);
xx[i]=x[i];
}
lld ww=xx[],minx=xx[];
for (int i=;i<=n;i++)
{
if (xx[i-]<)
{
minx=min(minx,xx[i]);
xx[i]+=xx[i-];
}else
{
xx[i]+=;
minx=1e18;
}
if (xx[i]<ww)
{
ww=xx[i];
ansv=minx;
}
}
if (ww<) ans1=ww*ansv;
for (int i=;i<=n;i++) a[i]=x[i];
for (int i=;i<=n;i++)
{
sum[i]=sum[i-]+a[i];
L[i]=R[i]=i;
}
a[]=a[n+]=-1e9;
for (int i=;i<=n;i++)
while(a[i]<=a[L[i]-]) L[i]=L[L[i]-];
for (int i=n;i>=;i--)
while(a[i]<=a[R[i]+]) R[i]=R[R[i]+];
lld ans=-1e18,l,r;
for (int i=;i<=n;i++)
{
lld T=a[i]*(sum[R[i]]-sum[L[i]-]);
if(ans<T) ans=T,l=L[i],r=R[i];
}
cout<<max(ans,ans1)<<endl;
}
The Preliminary Contest for ICPC China Nanchang National Invitational I.Max answer单调栈的更多相关文章
- The Preliminary Contest for ICPC China Nanchang National Invitational I. Max answer (单调栈+线段树)
题目链接:https://nanti.jisuanke.com/t/38228 题目大意:一个区间的值等于该区间的和乘以区间的最小值.给出一个含有n个数的序列(序列的值有正有负),找到该序列的区间最大 ...
- 计蒜客 38228. Max answer-线段树维护单调栈(The Preliminary Contest for ICPC China Nanchang National Invitational I. Max answer 南昌邀请赛网络赛) 2019ICPC南昌邀请赛网络赛
Max answer Alice has a magic array. She suggests that the value of a interval is equal to the sum of ...
- 2019The Preliminary Contest for ICPC China Nanchang National Invitational
The Preliminary Contest for ICPC China Nanchang National Invitational 题目一览表 考察知识点 I. Max answer 单调栈+ ...
- The Preliminary Contest for ICPC China Nanchang National Invitational
目录 Contest Info Solutions A. PERFECT NUMBER PROBLEM D. Match Stick Game G. tsy's number H. Coloring ...
- 计蒜客 38229.Distance on the tree-1.树链剖分(边权)+可持久化线段树(区间小于等于k的数的个数)+离散化+离线处理 or 2.树上第k大(主席树)+二分+离散化+在线查询 (The Preliminary Contest for ICPC China Nanchang National Invitational 南昌邀请赛网络赛)
Distance on the tree DSM(Data Structure Master) once learned about tree when he was preparing for NO ...
- The Preliminary Contest for ICPC China Nanchang National Invitational and International Silk-Road Programming Contest
打网络赛 比赛前的准备工作要做好 确保 c++/java/python的编译器能用 打好模板,放在桌面 A. PERFECT NUMBER PROBLEM #include <cstdio> ...
- The Preliminary Contest for ICPC China Nanchang National Invitational I题
Alice has a magic array. She suggests that the value of a interval is equal to the sum of the values ...
- Max answer(The Preliminary Contest for ICPC China Nanchang National Invitational)
Alice has a magic array. She suggests that the value of a interval is equal to the sum of the values ...
- 2019 The Preliminary Contest for ICPC China Nanchang National Invitational(A 、H 、I 、K 、M)
A. PERFECT NUMBER PROBLEM 题目链接:https://nanti.jisuanke.com/t/38220 题意: 输出前五个完美数 分析: 签到.直接百度完美数输出即可 #i ...
随机推荐
- 字符、散列、模拟--P1055 ISBN号码
题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(键盘上的减号),最后一位是识别 ...
- 洛谷——P2590 [ZJOI2008]树的统计(树链剖分模板练手)
P2590 [ZJOI2008]树的统计 I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问 ...
- 日常操作之如何打开windows注册表
1.打开注册表:第一步按“win+R”或者点击开始菜单,找到运行,在运行输入框里面输入“regedit”.
- C#创建excel并释放资源
using System; using Microsoft.Office.Interop.Excel; using Excel = Microsoft.Office.Interop.Excel; us ...
- 网络基础——OSI参考模型
一.OSI/ISO/IOS傻傻分不清楚 ISO 国际标准化组织(International Organization for Standardization)简称ISO,是一个全球性的非政府组织,是国 ...
- react入门----(this.state/表单/Ajax)
1.this.state 组件免不了要与用户互动,React 的一大创新,就是将组件看成是一个状态机,一开始有一个初始状态,然后用户互动,导致状态变化,从而触发重新渲染 UI var TestStat ...
- 初学hash
hash定义: Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种 ...
- 【02】json语法
[02] JSON 语法是 JavaScript 语法的子集. JSON 语法规则 JSON 语法是 JavaScript 对象表示法语法的子集. 数据在名称/值对中 数据由逗号分隔 花括号保存对象 ...
- HBase shell的常用命令(CRUD)
@来源是传智播客hadoop的视频教程,觉得入门不错,就copy过来了 一.启动HBase: sudo -i cd /home/cx/itcast/hbase-1.2.6/bin ./start- ...
- 淘宝手机rem的如何使用
1.主要介绍几个移动端常用的单位rem.vw.vh,配合传统的px.百分比.<viewport>标签,兼容适配移动端的各种分辨率的手机端. rm : 这个单位是以父元素为标准来进行计算 , ...