当前位置: 首页 > news >正文

蓝桥杯 最大区间

原题目链接

问题描述

给定一个长度为n的序列A_i,求一对L, R使得:

(R - L + 1) * min(A_L, A_{L+1}, ..., A_R)

的值尽可能大,其中min表示该区间中的最小值。

你只需要输出该表达式的最大值,无需输出具体的LR


输入格式

  • 第一行包含一个整数n,表示序列的长度。
  • 第二行包含n个整数,分别表示A_1, A_2, ..., A_n,相邻两个整数之间使用一个空格分隔。

输出格式

输出一行,包含一个整数,表示答案。


样例输入

5 1 1 3 3 1

样例输出

6

评测用例规模与约定

  • 对于 40% 的评测用例:1 ≤ n ≤ 5000,1 ≤ A_i ≤ 5000
  • 对于所有评测用例:1 ≤ n ≤ 3×10^5,1 ≤ A_i ≤ 10^9

c++代码

#include<bits/stdc++.h>#include<stdio.h>usingnamespacestd;typedeflonglongll;ll n,ans=0;vector<ll>arr,nextsmall,lastsmall;intmain(){stack<ll>st,sk;scanf("%lld",&n);arr=vector<ll>(n),nextsmall=vector<ll>(n,n),lastsmall=vector<ll>(n,-1);for(ll i=0;i<n;i++){scanf("%d",&arr[i]);}for(ll i=0;i<n;i++){while(!st.empty()&&arr[i]<arr[st.top()]){nextsmall[st.top()]=i;st.pop();}st.push(i);}for(ll i=n-1;i>=0;i--){while(!sk.empty()&&arr[i]<arr[sk.top()]){lastsmall[sk.top()]=i;sk.pop();}sk.push(i);}for(ll i=0;i<n;i++){ll left=lastsmall[i]+1,right=nextsmall[i]-1;ans=max(ans,(right-left+1)*arr[i]);}printf("%lld",ans);return0;}//by wqs

算法讲解

用单调栈

这道题目,先选取一个值假设这个值就是最小的,然后不断向两边扩散,使得R - L最大,前提是保证这个值最小。

如何快速得到L和R,就是快速得到右边第一个比他大的,和左边第一个比他小的,这就是经典的单调栈问题。

http://www.jsqmd.com/news/468399/

相关文章:

  • 大端小端检测实战:5分钟用联合体写出CPU字节序测试工具(附结构体对比)
  • 量化交易系统技术方案设计
  • pr 3dmax ae au 达芬奇等各类安装包需要的自提,
  • swift- Swift中常见的面试题
  • Electron-build进阶技巧:利用NSIS脚本实现安装包注册表操作与文件管理
  • TL5000BCJ激光器参数解析与常见应用场景(含线宽与功率优化技巧)
  • Kafka topic 中的 partition 数据倾斜问题
  • 点云配准避坑指南:ICP算法中点到点/面/线的5个实战误区
  • Protobuf编码实战:从TLV到ZigZag,手把手解析二进制流
  • SDC命令实战:get_lib_cells在Design Compiler中的高效查询技巧
  • 智能基座智享未来ep01:openGauss使用指南
  • 我不允许有人不知道 Win11 专业版密钥,简易 Win11 专业版密钥
  • 1.26 PowerBI数据刷新实战:从报错定位到高效修复
  • OGG经典模式下不停机同步新增表的完整流程(含SCN号获取与数据导出导入)
  • 深入解析RTL8111H网络指示灯驱动修改实战
  • 282个企业级skills,108个本体|滴普科技全新升级发布Deepexi企业大模型与DeepexiOS AI级企业操作系统
  • Logisim微程序控制器设计避坑指南:从真值表填写到MIPS CPU完整执行流程
  • Win10/Win11超萌猫咪指针安装指南:从下载到设置一步到位(附免费资源链接)
  • 地瓜派RDK X5部署YOLOv11n避坑指南:从Softmax算子优化到端到端47 FPS实战
  • 避开这两个坑!用Dbeaver查ES数据时遇到的JDBC和License问题实录
  • 32768个Token的魔法:为什么GPT-4突然能记住整本小说?
  • RocketMQ核心概念精讲:从Group、Topic到Queue、Tag的实战解析
  • Android 8.1虚拟摄像头实战:v4l2loopback移植避坑指南(附完整Makefile配置)
  • LabVIEW计数器应用大全:5种频率测量方法对比与选型建议
  • MySQL 存储过程和定时任务小例
  • DolphinScheduler实战:如何用三层工作流规范管理数仓任务(附避坑指南)
  • PDF解析新选择:MinerU与Dify联合实战,轻松搞定复杂排版文档
  • TeamSpeak 3服务器与客户端联动配置全攻略(Windows版)
  • LabVIEW操作者框架(Actor Framework)范例集锦之七:技术大会演讲范例解析
  • 宝塔面板 + MySQL 数据库安全配置全攻略