LGP2422 [] 良好的感觉 学习笔记

news/2025/2/21 7:43:35/文章来源:https://www.cnblogs.com/OrinLoong/p/18728168

LGP2422 [] 良好的感觉 学习笔记

Luogu Link

题意简述

给定一个长为 \(n\) 的序列 \(A\),求 \(\max_{l=1,r=1}^{n,n}\min_{i=l}^{r}A_i\times\sum_{j=l}^{r}A_j\)

说人话就是框定一个区间,其权值定义为区间最小值乘区间和,最大化此权值并输出它。

做法解析

如果你了解极值分治和笛卡尔树,你会发现这就是经典的极值分治形式,建个笛卡尔树然后dfs一遍就没了。

代码实现

#include <bits/stdc++.h>
using namespace std;
namespace obasic{typedef long long lolo;template <typename _T>void readi(_T &x){_T k=1;x=0;char ch=getchar();for(;!isdigit(ch);ch=getchar())if(ch=='-')k=-1;for(;isdigit(ch);ch=getchar())x=(x<<3)+(x<<1)+ch-'0';x*=k;return;}template <typename _T>void writi(_T x){if(x<0)putchar('-'),x=-x;if(x>9)writi(x/10);putchar(x%10+'0');}template <typename _T>void maxxer(_T &x,_T y){x=max(x,y);}
};
using namespace obasic;
const int MaxN=1e5+5;
int N;lolo A[MaxN],sum[MaxN],ans;
int stk[MaxN],ktp,ls[MaxN],rs[MaxN];
lolo dfs(int u,int l,int r){lolo res=1ll*A[u]*(sum[r]-sum[l-1]);if(ls[u])maxxer(res,dfs(ls[u],l,u-1));if(rs[u])maxxer(res,dfs(rs[u],u+1,r));return res;
}
int main(){readi(N);for(int i=1;i<=N;i++){readi(A[i]);sum[i]=sum[i-1]+A[i];}for(int i=1;i<=N;i++){int k=ktp;while(k&&A[stk[k]]>A[i])k--;if(k)rs[stk[k]]=i;if(k<ktp)ls[i]=stk[k+1];stk[++k]=i,ktp=k;}ans=dfs(stk[1],1,N);writi(ans);return 0;
}

反思总结

极值分治与笛卡尔树的要素:静态、要考虑所有的区间、权值为区间极值和别的什么东西结合在一起得出。在这题体现的淋漓尽致。

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

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

相关文章

FerretDB 是 MongoDB 的开源替代方案,发布了 2.0 版

FerretDB作为开源的MongoDB替代方案,近期发布了2.0版本候选版:https://blog.ferretdb.io/ferretdb-releases-v2-faster-more-compatible-mongodb-alternative/,其核心内容可概括如下:一、核心升级与性能优化架构革新:基于微软开源的DocumentDB PostgreSQL扩展(MIT协议),…

读当我点击时,算法在想什么?07算法想取代我们(下)

人工智能发展引发关注,但面临诸多挑战,如算法能力、学习机制等。人工智能不如人类灵活,过分恐慌不必要。算法是社会工具,理解算法有助于预判未来,人类控制算法发展。1. 贾维斯 1.1. Jarvis 1.2. 命名的灵感来自漫画和电影《复仇者联盟》中钢铁侠制造的人工智能机器人 1.3.…

2025多校冲刺省选模拟赛15 2025省选模拟12

一场模拟赛 $5$ 道 $T2$2025多校冲刺省选模拟赛15 \(T1\) A. 小 F 的疑惑原题: TopCoder 12584 SemiPerfectPower 等省选后再来改。\(T2_{1}\) B. 城市规划原题: TopCoder 13518 CityRebuild详见 2025省选模拟8 T1 HZTG5836. 小幸运 。数据中提到了可能会有重复的点,但一些 …

别再为文本提取抓狂!一站式文本提取神器Kreuzberg 助你解决PDF、图片、文档等多格式文件的文本提取难题

大家好,我是六哥,相信很多朋友肯定都有过从各种文档里提取文本的经历,那过程可太让人头疼了!今天就给大家分享一款超实用的现代Python库——Kreuzberg,帮你轻松解决文本提取的难题。 一、Kreuzberg解决了什么问题 现在很多文本提取工具,要么依赖外部API调用,要么配置特别…

《四步创业法》读书笔记 1

书籍简介 《四步创业法》的作者 Steven Gary Blank 博士是硅谷资深企业家,他一共创办了八家企业,并担任多家硅谷公司的董事和创业顾问。 《四步创业法》是创业领域的经典著作,提出了颠覆传统产品开发模式的客户发展方法论(Customer Development),为后来的精益创业(Lean …

2025.02.21 Lombok使用的问题记录

问题:运行SpringBoot项目后,报错,java: 找不到符号 符号 原因:似乎是在IDEA中手动选择了maven路径下面的lombok的jar包,导致版本不正确???将选项设置为根据项目类路径,而后在pom.xml中配置合适的版本后,即运行正常

在云服务器上开MC-Forge服

记录一下在云服务器上开mc-1.16.5-Forge服。 OS: Ubuntu 22.04.2 LTS x86_64 CPU: Intel Xeon Platinum (2) @ 2.500GHz Memory: 396MiB / 7279MiB在云服务器上开MC-Forge服 记录一下在云服务器上开mc-1.16.5-Forge服。 OS: Ubuntu 22.04.2 LTS x86_64 CPU: Intel Xeon Platinu…

Edge与Firefox浏览器在Win11虚拟桌面下Bug记录

背景Win11专业版,23H2,版本号22631.4890 Google浏览器,版本 133.0.6943.127 Edge浏览器,版本133.0.3065.69 Firefox浏览器,版本135.0.1Bug描述 在打开浏览器的启动时打开先前的窗口和标签页选项,且同时有多个虚拟桌面的情况下,在当前桌面打开的浏览器会跳到其他的桌面打…

Condition类的signal()方法底层原理

一、Condition类的signal()方法底层原理 Condition 接口的 signal 方法是用于唤醒一个在 Condition 上等待的线程。与 Object 的 notify 方法类似,signal 方法会从 Condition 的等待队列中选择一个线程并将其唤醒,使其重新尝试获取锁并继续执行 1、signal 方法的核心逻辑 sig…

【ssh隧道】利用ssh隧道将公网meterpreter弹至本地的msf中

不少人私信说如果攻击者的网络和被攻击者的网络都是位于不同地理位置的私网,这种情况下如何反弹shell,今天统一给大家介绍一款最间简单的方式。 利用自己公网VPS的SSH把meterpreter直接弹到本地的msf中 一、环境介绍 ubuntu16-LAMP:假设为入侵者公网的一台linux[vps]机器,公…

洛谷文章存档

由于洛谷专栏没了,故放博客园存档。 CSP-J/S 2024 游记 前言 2024.9.29 ~ 现在: \(\footnotesize\mathbf{安全声明:洛谷的文章只显示 {\underline{\color{red}{发布时期}}}而不显示{\underline{\color{red}{更新时期}}}!} \\ \footnotesize\mathbf{题目和答案均为{\underli…

一文了解:新基建是什么

新基建(新型基础设施建设)是中国提出的战略性发展方向,主要聚焦于数字化、智能化、绿色化等领域,旨在推动经济转型升级和高质量发展。 一、信息基础设施 以5G、人工智能、大数据等技术为核心,构建数字时代的“技术底座”:通信网络基础设施5G网络:高速率、低时延的通信网…