[poj 2796]单调栈
题目链接: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]单调栈相关推荐
- *【POJ - 2796】 Feel Good (前缀和优化+单调栈维护)
题干: Feel Good Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 12409 Accepted: 3484 Ca ...
- POJ 3250 Bad Hair Day (单调栈)
POJ 3250 Bad Hair Day (单调栈) 手动博客搬家:本文发表于20170806 22:53:35, 原地址https://blog.csdn.net/suncongbo/articl ...
- poj 2769 感觉♂良好 (单调栈)
poj 2769 感觉♂良好 (单调栈) 比尔正在研发一种关于人类情感的新数学理论.他最近致力于研究一个日子的好坏,如何影响人们对某个时期的回忆. 比尔为人的一天赋予了一个正整数值. 比尔称这个值为当 ...
- POJ 3250 解题报告 Bad Hair Day (单调栈)
传送门:http://poj.org/problem?id=3250 这题--水题啊,单调栈可解. 上一波C艹实现 #include <iostream> #include <cst ...
- POJ - 2559 Largest Rectangle in a Histogram(笛卡尔树,单调栈实现)
题目链接:点击查看 题目大意:给出一排高度不同,宽度都为 1 的矩形,问拼起来后最大的矩形面积是多少 题目分析:普通做法是用单调栈直接维护,我一直觉得单调栈处理这种矩形问题都比较抽象,也可能是我太菜了 ...
- POJ - 3415 Common Substrings(后缀数组+单调栈)
题目链接:点击查看 题目大意:给出两个字符串,再给出一个k,问两个字符串中长度大于等于k的公共子串有多少个(种类可重复) 题目分析:因为涉及到了子串问题,先用后缀数组跑出height数组来,接下来如果 ...
- POJ - 2201 Cartesian Tree(笛卡尔树-单调栈/暴跳父亲)
题目链接:点击查看 题目大意:给出n个节点的key和val,构造出其笛卡尔树的原型 笛卡尔树的定义: 所谓笛卡尔树,就是将给定的n个二元组(key,val)建成一棵树.使得: 如果只关注key,那么这 ...
- POJ - 3250 Bad Hair Day(单调队列/单调栈)
题目链接:点击查看 题目大意:给出n只牛,高度参差不齐,所有的牛都朝向右边,他们可以看到右边所有没有遮挡并且比自己低的牛,问每只牛可以看到的牛的数量总和是多少 题目分析:这个题目让求每只牛看到的牛的数 ...
- 【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- ...
最新文章
- JavaScript模块化 --- Commonjs、AMD、CMD、es6 modules
- 紧急!Log4j 史诗级漏洞来袭,已引起大规模入侵,速速自查!
- 完整的由客户端登录(注册)思路
- Linux基础知识(1)
- java 容器 List
- java hibernate 包_java – Hibernate映射包
- php采集扩展,PHP扩展生成器
- mongodb服务安装及部署配置
- 使用socket方式连接Nginx优化php-fpm性能
- samba 和 nfs 实验
- Redis管理及监控工具treeNMS
- 浅谈微信小程序开发工具
- 领导让我接私活,怎么办
- 快速接入百度大脑身份证识别
- 【机器视觉】二维码检测(QR 码)
- SVG 图标格式文件去除文件默认颜色
- css总结 -使用display:inline-block,出现元素高度错位
- 多重if 和 嵌套 if 选择结构
- Fluent飞行器动导数计算方法
- Linux/Android——input_handler之evdev (四)
热门文章
- Github新功能 个人展示项目--首页展示个人介绍 图片and so on(2020.08.05)
- [SQL Native Client] 命名管道提供程序:无法打开与 Sql Server 的连接[2]
- 拒绝低效加班,别让“囚徒困境”限制你的职业发展
- 多数据源报表解析之简单多源报表
- mono for android定义,2.1.3 使用Mono for Android的原因
- python字典api_python接口自动化(九)--python中字典和json的区别(详解)
- c++如何输入数组_工作表数组计算之一:行列数相同的数组间运算
- 张量/tensor--详解
- python高阶函数(三分钟读懂)
- java 线程 listview_android使用Thread实现json数据的传递,并且使用ListView显示