题解:P2422 良好的感觉

news/2025/3/1 15:17:02/文章来源:https://www.cnblogs.com/zenoszheng/p/18744888

虽然标签是单调队列优化DP。
但这道题是一道很典的前缀和+单调栈。
预处理完前缀和后分别从左往右和从右往左把每个点的最大&最小的边界条件预处理出来。
最后对所有可能线性询问一次,取最大值。
时间复杂度O(n)。

AC 代码

`#include<bits/stdc++.h>
#define debug(a) cout<<#a<<"="<<a<<'\n';
#define il inline
#define inf 0x3f3f3f3fusing namespace std;
using ll = long long;
using ull = unsigned long long;const int maxn = 1e5+10;int n,a[maxn],stk[maxn],top,l[maxn],r[maxn];
ll s[maxn],ans = -inf;int main(){// freopen("test.in","r",stdin);// freopen("test.out","w",stdout);ios::sync_with_stdio(0),cout.tie(0),cin.tie(0);cin>>n;for(int i = 1;i <= n;i++)cin>>a[i];for(int i = 1;i <= n;i++)s[i] = s[i-1] + a[i];// 预处理前缀和for(int i = 1;i <= n;i++)//从左往右{while(top && a[stk[top]] >= a[i])top--;l[i] = stk[top];stk[++top] = i;}top = 0;stk[0] = n+1;for(int i = n;i >= 1;i--)//从右往左{while(top && a[stk[top]] >= a[i])top--;r[i] = stk[top] - 1;stk[++top] = i;}for(int i = 1;i <= n;i++)//遍历取最大值{ans = max(ans,(s[r[i]] - s[l[i]]) * a[i]);}cout<<ans;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/891562.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何保证 Redis 缓存和数据库的一致性?

如何保证 Redis 缓存和数据库的一致性? 1. 问题出现场景先修改数据库,再删除缓存 删除数据库数据成功了,但是删除缓存却失败了,缓存中仍保留的是旧数据先删除缓存,再删除数据库 如果 Redis 缓存删除成功后,假如数据库数据还没来得及更新,用户又请求数据,这时就会从数据…

PowerShell开发小工具 四张照片拼成一张

小工具的设计与实现------选四张照片拼成一张照片。 很经典的应用情景,市面上有很多类似的小软件,特别是手机应用。为了方便学习巩固PowerShell,今天笔者使用它来实现。【设计思路】选择四张符合要求的照片或图片[.jpg] [.png] 准备画布,计算其子区域(画布四分之一)宽高比…

Python123画一个五星红旗

点击查看代码 import turtle import math# 初始化画布(推荐设置600x400显示区域) screen = turtle.Screen() screen.colormode(1.0) t = turtle.Turtle() t.speed(10) t.hideturtle()# 国旗标准参数 FLAG_WIDTH = 600 # 旗面宽度 FLAG_HEIGHT = 400 # 严格3:2比例…

擦除0地址codeflash营造空片现象_重新上电即可进入BootLoader程序

芯片在空片时,首次插入USB供电会直接在ISP工具中搜索到USB设备,可以进行首次烧录;原因是在0地址没有用户程序,所以会在停留在boot区域; 利用该特性,可以在固件中加入一些处理,比如USB OUT端点透传数据给芯片,解析成功后,使用FLASH_ROM_ERASE接口擦除0地址数据,此后给…

探秘Transformer之(8)--- 位置编码

从零开始解析Transformer,目标是:(1) 解析Transformer如何运作,以及为何如此运作,让新同学可以入门;(2) 力争融入一些比较新的或者有特色的论文或者理念,让老鸟也可以有所收获。探秘Transformer之(8)--- 位置编码 目录探秘Transformer之(8)--- 位置编码0x00 概述0x01…

day11 用户的管理篇

day11用户的管理篇不同的用户,在不同的目录下,操作不同的文件权限是不一样的用户的路的机器该文件和用户的关系是什么在单位里运维作为服务器的管理员,root权限是有的 而开发,测试,他们是不可能有root权限的 即使需要使用root权限,运维会给他配置(临时使用管理员身份运行…

idea无法跳转到jar包里面的代码

需要添加到library 右键点击jar包,然后添加到library

【vulhub】tomcat CVE-2017-12615(任意写入文件)

CVE-2017-12615 tomcat 任意写入文件 漏洞复现渗透环境 攻击机: 192.168.66.130(Kali) 漏洞收录于:vulhub/tomcat/CVE-2017-12615 涉及知识点:tomcat任意文件写入 漏洞详情 当 Tomcat 运行在 Windows 系统且启用了 HTTP PUT 方法(通过将 readonly 参数设置为 false)时…

太阳花2

from turtle import * color(red,yellow) begin_fill() while True:forward(200)left(170)if abs(pos()) < 1:breakend_fill()done()

reDuh工具:实现端口复用(附下载链接)

本文来自无问社区成员,村口一枝花投稿。 一、端口复用的知识点 有关端口复用的知识点,深入学习一下。存在的安全隐患所指的是在同一个端口上建立了与多个服务之间的连接,在实际场景下多用于绕过防火墙的端口限制。 二、场景设立实验环境 靶机 B 在内网当中,而防火墙只开放了…

【Java免杀】异或加密 (XOR Cipher)实现WebShell免杀

异或加密是一种对每个字符执行位操作的加密方法。通过与一个密钥进行异或运算,明文会被加密,且加密后的文本可以通过相同的密钥再次进行异或解密。 一、加密与解密示例: <%! public static String xorEncryptDecrypt(String text, char key) {StringBuilder result = new…

大厂开源项目,真的太爽啦,字节跳动出品!这个设计系统开源神器,让你的产品颜值与效率齐飞

Semi Design是由抖音前端团队开源的企业级设计系统,**同时支持React/Vue双框架**,提供超过60+高质量组件。不同于普通UI库,它从**设计工程化**角度出发,打通Figma设计资源与前端代码的桥梁,真正实现设计稿到代码的"零误差还原"。目前已在字节跳动200+项目中验证…