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

题目地址: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. javascript 判断 前端 是 pc端 还是 移动端
  2. ubuntu下php服务器搭建_Ubuntu服务器下搭建php运行环境的方法
  3. loj 1316(spfa预处理+状压dp)
  4. boost::hana::lexicographical_compare用法的测试程序
  5. 【Qt】Qt5.12编译MySQl5.7驱动(亲自测试成功)
  6. 玩转Linux必备知识(一)
  7. 解读ASP.NET 5 MVC6系列(9):日志框架
  8. macaca使用中问题解决方法整理
  9. 类中的反射 装逼利器
  10. 创建jenkins任务
  11. Azure 基础:Blob Storage
  12. 【LeetCode】跳步系列
  13. 新体育杂志新体育杂志社新体育杂志社新体育编辑部2022年第8期目录
  14. 计算机网络技术报告一份,计算机网络技术》实验的报告.doc
  15. JavaScript中的作用域及作用域链
  16. 如何把照片制作成带音乐的影集相册?动感特效,简单实用!
  17. 【软件测试】接口测试笔记4
  18. VUE的父传子 子传父
  19. 生物信息学|药物发现中的机器学习技术(2)
  20. 科技培训专业委员会成立,乐博乐博正式成为会员单位

热门文章

  1. 老美,人不能无耻到这种地步
  2. unity中调用dll文件总结
  3. 检测制定代码部分的profiler
  4. 网络通信知识点,程序员必备知识
  5. 邮件里直接显示图片_利用邮件合并带图片功能批量制作准考证、工作证、成绩通知单等...
  6. html页面能直接用vuex吗,vuex(多用于不同页面之间的数据共用和修改)
  7. 前端每日实战:76# 视频演示如何用纯 CSS 创作一组单元素办公用品(内含2个视频)...
  8. css常见样式命名思想
  9. bootstrap-徽章-链接
  10. springmvc(2)Controller源码简单解析