题目链接:http://poj.org/problem?id=2796

单调栈可以O(n)得到以每个位置为最小值,向左右最多扩展到哪里。

#include<cstdio>
#include<algorithm>
#include<stack>
using namespace std;const int maxn=100005;
int a[maxn];
int l[maxn];
int r[maxn];
long long pre[maxn];
stack< pair<int,int> > S;int main()
{int n;while (~scanf("%d",&n)){while (!S.empty()) S.pop();for (int i=1;i<=n;i++) scanf("%d",&a[i]);a[n+1]=-1;S.push(make_pair(-2,0));for (int i=1;i<=n+1;i++){while (S.top().first>=a[i]){int p=S.top().second;S.pop();l[p]=S.top().second+1;r[p]=i-1;}S.push(make_pair(a[i],i));}pre[0]=0;for (int i=1;i<=n;i++) pre[i]=pre[i-1]+a[i];long long ans=-1;int ansp=-1;for (int i=1;i<=n;i++){long long tt=(pre[r[i]]-pre[l[i]-1])*a[i];if (tt>ans){ans=tt;ansp=i;}}printf("%lld\n%d %d\n",ans,l[ansp],r[ansp]);}return 0;
}

转载于:https://www.cnblogs.com/acmsong/p/7342739.html

[poj 2796]单调栈相关推荐

  1. *【POJ - 2796】 Feel Good (前缀和优化+单调栈维护)

    题干: Feel Good Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 12409   Accepted: 3484 Ca ...

  2. POJ 3250 Bad Hair Day (单调栈)

    POJ 3250 Bad Hair Day (单调栈) 手动博客搬家:本文发表于20170806 22:53:35, 原地址https://blog.csdn.net/suncongbo/articl ...

  3. poj 2769 感觉♂良好 (单调栈)

    poj 2769 感觉♂良好 (单调栈) 比尔正在研发一种关于人类情感的新数学理论.他最近致力于研究一个日子的好坏,如何影响人们对某个时期的回忆. 比尔为人的一天赋予了一个正整数值. 比尔称这个值为当 ...

  4. POJ 3250 解题报告 Bad Hair Day (单调栈)

    传送门:http://poj.org/problem?id=3250 这题--水题啊,单调栈可解. 上一波C艹实现 #include <iostream> #include <cst ...

  5. POJ - 2559 Largest Rectangle in a Histogram(笛卡尔树,单调栈实现)

    题目链接:点击查看 题目大意:给出一排高度不同,宽度都为 1 的矩形,问拼起来后最大的矩形面积是多少 题目分析:普通做法是用单调栈直接维护,我一直觉得单调栈处理这种矩形问题都比较抽象,也可能是我太菜了 ...

  6. POJ - 3415 Common Substrings(后缀数组+单调栈)

    题目链接:点击查看 题目大意:给出两个字符串,再给出一个k,问两个字符串中长度大于等于k的公共子串有多少个(种类可重复) 题目分析:因为涉及到了子串问题,先用后缀数组跑出height数组来,接下来如果 ...

  7. POJ - 2201 Cartesian Tree(笛卡尔树-单调栈/暴跳父亲)

    题目链接:点击查看 题目大意:给出n个节点的key和val,构造出其笛卡尔树的原型 笛卡尔树的定义: 所谓笛卡尔树,就是将给定的n个二元组(key,val)建成一棵树.使得: 如果只关注key,那么这 ...

  8. POJ - 3250 Bad Hair Day(单调队列/单调栈)

    题目链接:点击查看 题目大意:给出n只牛,高度参差不齐,所有的牛都朝向右边,他们可以看到右边所有没有遮挡并且比自己低的牛,问每只牛可以看到的牛的数量总和是多少 题目分析:这个题目让求每只牛看到的牛的数 ...

  9. 【POJ - 3250 】Bad Hair Day (单调栈)

    题干: Some of Farmer John's N cows (1 ≤ N ≤ 80,000) are having a bad hair day! Since each cow is self- ...

最新文章

  1. JavaScript模块化 --- Commonjs、AMD、CMD、es6 modules
  2. 紧急!Log4j 史诗级漏洞来袭,已引起大规模入侵,速速自查!
  3. 完整的由客户端登录(注册)思路
  4. Linux基础知识(1)
  5. java 容器 List
  6. java hibernate 包_java – Hibernate映射包
  7. php采集扩展,PHP扩展生成器
  8. mongodb服务安装及部署配置
  9. 使用socket方式连接Nginx优化php-fpm性能
  10. samba 和 nfs 实验
  11. Redis管理及监控工具treeNMS
  12. 浅谈微信小程序开发工具
  13. 领导让我接私活,怎么办
  14. 快速接入百度大脑身份证识别
  15. 【机器视觉】二维码检测(QR 码)
  16. SVG 图标格式文件去除文件默认颜色
  17. css总结 -使用display:inline-block,出现元素高度错位
  18. 多重if 和 嵌套 if 选择结构
  19. Fluent飞行器动导数计算方法
  20. Linux/Android——input_handler之evdev (四)

热门文章

  1. Github新功能 个人展示项目--首页展示个人介绍 图片and so on(2020.08.05)
  2. [SQL Native Client] 命名管道提供程序:无法打开与 Sql Server 的连接[2]
  3. 拒绝低效加班,别让“囚徒困境”限制你的职业发展
  4. 多数据源报表解析之简单多源报表
  5. mono for android定义,2.1.3 使用Mono for Android的原因
  6. python字典api_python接口自动化(九)--python中字典和json的区别(详解)
  7. c++如何输入数组_工作表数组计算之一:行列数相同的数组间运算
  8. 张量/tensor--详解
  9. python高阶函数(三分钟读懂)
  10. java 线程 listview_android使用Thread实现json数据的传递,并且使用ListView显示