(;´༎ຶД༎ຶ`)写完才发现这道题其实和上一篇博客的题一毛一样呀。。

题目地址:http://poj.org/problem?id=2796

题意


给出数字序列,定义一个区间内的value值是这个区间所有数之和*这个区间的最小数,求对于这个数字序列,最大的value值

解题思路


和https://mp.csdn.net/postedit/89791878这个类似,找a[i]为最小值所在的区间,区间和用前缀和数组计算即可,再遍历i求最大的value值,注意数字序列中所有值都一样的情况

ac代码


数组比较大,要开在外面。。。

#include <iostream>
#include <algorithm>
#include <stack>
typedef long long ll;
#define maxn 1000005
using namespace std;
ll n,a[maxn]={0},sum[maxn]={0},l[maxn],r[maxn],L=-1,R=-1;
int main()
{//freopen("/Users/zhangkanqi/Desktop/11.txt","r",stdin);stack<ll> s;scanf("%lld",&n);for(ll i=1;i<=n;i++){scanf("%lld",&a[i]);sum[i]=sum[i-1]+a[i];}for(ll i=1;i<=n;i++){while(!s.empty() && a[s.top()]>=a[i])s.pop();if(s.empty()) l[i]=1;//注意此时l[i]的值else l[i]=s.top()+1;s.push(i);}while(!s.empty()) s.pop();for(ll i=n;i>=1;i--){while(!s.empty() && a[s.top()]>=a[i])s.pop();if(s.empty()) r[i]=n;//注意此时r[i]的值else r[i]=s.top()-1;s.push(i);}ll ans=-1;for(ll i=1;i<=n;i++){ll t=(sum[r[i]]-sum[l[i]-1])*a[i];if(t>ans){ans=t;L=l[i];R=r[i];}}printf("%lld\n%lld %lld",ans,L,R);return 0;
}

【POJ2796】Feel Good (简单单调栈)相关推荐

  1. POJ2796 Feel Good(单调栈)

    题意: 给出一列数据,要求一个区间内最小值与区间内数据总和乘积最大值 要点: 还是单调栈,这次我自己写的,先做了几题比较简单的果然还是有效果的,这题也是一样,按点遍历,网上大神做的是直接遍历一次即可, ...

  2. upc组队赛1 小C的数学问题【单调栈】(POJ2796)

    小C的数学问题 题目描述 小C是个云南中医学院的大一新生,在某个星期二,他的高数老师扔给了他一个问题. 让他在1天的时间内给出答案. 但是小C不会这问题,现在他来请教你. 请你帮他解决这个问题. 有n ...

  3. 单调栈与单调队列简单例题

    单调栈与单调队列简单例题 单调栈: POJ3250 题意:有n只奶牛排成一列向右看,每头奶牛只能看到比自己矮的奶牛,即会被高的奶牛挡住后面,问共有多少只奶牛能被看到 思路:考虑每头奶牛能被前面牛看到的 ...

  4. 单调栈解木板倒水问题(单调栈的简单应用)

    题目描述: 地上从左到右竖立着 n 块木板,从 1 到 n 依次编号,如下图所示.我们知道每块木板的高度,在第 n 块木板右侧竖立着一块高度无限大的木板,现对每块木板依次做如下的操作:对于第 i 块木 ...

  5. 蒟蒻的ACM数据结构(四)-单调队列和单调栈

    单调队列和单调栈 一.概念 二.实现 三.题目 单调队列 洛谷P1886 滑动窗口 解析 单调栈 [GXOI/GZOI2019]与或和 解析 POJ3250 Bad Hair Day 解析 POJ 2 ...

  6. leetcode 739. 每日温度 单调栈解法和暴力法及其优化 c代码

    如题: 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高, 请在该位置用 0 来代替.例如,给定一个列表 temperature ...

  7. 51Nod 1102 面积最大的矩形 +1272 最大距离 单调栈

    51Nod 1102 面积最大的矩形 记笔记记笔记:对于区间最值与区间长度/和等的问题,用单调栈来维护区间端点. 这里来补一补单调栈和单调队列的基础知识: 单调栈:                   ...

  8. CodeForces - 1484E Skyline Photo(dp+单调栈)

    题目链接:点击查看 题目大意:给出 nnn 个建筑,每个建筑有一个高度和一个美丽值,现在要求划分为数个连续的区间,使得所有区间的贡献之和最大,其中每个区间的贡献值为,区间中高度最低的建筑物的美丽值 题 ...

  9. CodeForces - 1407D Discrete Centrifugal Jumps(单调栈+dp)

    题目链接:点击查看 题目大意:给出 n 个大楼的高度记为 h,现在需要从第一个大楼到达第 n 个大楼,问最小步数是多少,只有满足以下条件时才能从 i 移动到 j ,设 i < j: 题目分析:无 ...

  10. 联想杯 - Gentle Jena(单调栈)

    Problem G. Gentle Jena Input file: Standard Input Time limit: 2 seconds Output file: Standard Output ...

最新文章

  1. devexpress toolbar 填充整行宽度
  2. c语言图论,图论问题------大家过来看看
  3. 高压放电与防静电塑料包装
  4. Django中手动创建虚拟环境
  5. 今年新增院士中,最年轻的是他
  6. 软件测试岗需要会什么条件,应聘软件测试岗位需要具备什么条件?
  7. 【hortonworks/registries】Parameter Schema name is null
  8. ASN.1编解码:asn1c-ORAN-E2AP
  9. 你相信逛 B 站也能学编程吗?
  10. c语言文件操作——复制文件
  11. Linux进程管理四大‘名捕’
  12. ISO IEC 27001 企业信息安全管理要求
  13. 能源管理系统背景概述
  14. 玉柴spn码故障对照表_玉柴电控柴油机故障代码及读码方法
  15. linux4.12 交叉编译链,交叉编译工具链(很详细)
  16. 使用多个可选过滤器过滤 Eloquent 模型
  17. mac如何查看wifi密码
  18. 国科大2019年大数据分析课件作业 考试-程学旗 靳小龙 刘盛华
  19. Linux中FTP设置登录欢迎词,怎么为FTP登陆用户设置欢迎语(servu)
  20. typename的两个意思

热门文章

  1. 一个本科毕业生的Java学习之路
  2. Java 理论与实践: 您的小数点到哪里去了?
  3. VSTT Rosario CTP
  4. vue-cli 打包出来的文件缺少_Vue cli构建 及 项目打包以及出现的问题 (update 2020-05)...
  5. python 优点_python语言有什么优势
  6. 数据库配置文件,db.properties、jdbc.properties
  7. 【转】Element-UI中上传的action地址相对问题
  8. 入门笔记 Day two
  9. 徐州医科大学党委书记夏有兵一行莅临云创
  10. Zephyr学习(一)Zephyr介绍