博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeFroces-- Feel Good
阅读量:5036 次
发布时间:2019-06-12

本文共 962 字,大约阅读时间需要 3 分钟。

 

题目大意:给出一段无序数组找出任意 一段区间和*这段区间的最小值 使这个值最大

栈的经典问题

用栈预处理出当前ai 为这块区间最小值的时候 的区间范围(L 和R)

#include
using namespace std;#define maxn 100015#define LL long longLL ll[maxn],rr[maxn];stack
s,t;LL sum[maxn];LL a[maxn];int main(){ //freopen("feelgood.in","r",stdin); //freopen("feelgood.out","w",stdout); LL n; cin>>n; memset(sum,0,sizeof(sum)); for(LL j=1;j<=n;j++){ cin>>a[j]; sum[j]=a[j]+sum[j-1]; } for(LL j=1;j<=n;j++){ while(s.size()&&a[j]<=a[s.top()]){ s.pop(); } if(!s.size()) ll[j]=1; else ll[j]=s.top()+1; s.push(j); } for(LL j=n;j>=1;j--){ while(t.size()&&a[j]<=a[t.top()]){ t.pop(); } if(!t.size()) rr[j]=n; else rr[j]=t.top()-1; t.push(j); //cout<
<
mx){ mx=ans; l=ll[j]; r=rr[j]; } } cout<
<

 

转载于:https://www.cnblogs.com/DyLoder/p/9888092.html

你可能感兴趣的文章
SQL递归查询
查看>>
在公司就职时应该注意的事项
查看>>
springMVC整合jedis+redis
查看>>
As,is含义?using 语句
查看>>
Python基础之 一 文件操作
查看>>
后台调用前台与js方法互调
查看>>
LAMP系统优化
查看>>
RHEL6 学习:使用 cryptsetup 给分区加密
查看>>
安卓TabLayout+ViewPager实现切页
查看>>
谈一谈Python的上下文管理器
查看>>
自己实现简单的RSA秘钥生成与加解密(Java )
查看>>
ida plug-in helloworld
查看>>
测试工具应用之我见
查看>>
[POJ3155]Hard Life
查看>>
系统架构设计笔记
查看>>
5-6 c语言之【枚举,联合体,递归】
查看>>
假如65岁退休
查看>>
343. Integer Break
查看>>
一句话总结kNN算法
查看>>
C#利用服务器实现客户端之间通信
查看>>