2025西安交大集训Day4:单调栈,单调队列,线段树

news/2025/3/28 6:41:26/文章来源:https://www.cnblogs.com/FrankWKD/p/18777905

2025西安交大集训Day4:单调栈,单调队列,线段树

引入

何为单调栈?顾名思义,单调栈即满足单调性的栈结构。与单调队列相比,其只在一端进行进出。

为了描述方便,以下举例及伪代码以维护一个整数的单调递增栈为例。

过程

插入

将一个元素插入单调栈时,为了维护栈的单调性,需要在保证将该元素插入到栈顶后整个栈满足单调性的前提下弹出最少的元素。

例如,栈中自顶向下的元素为 \(\{0,11,45,81\}\)

插入元素 \(14\) 时为了保证单调性需要依次弹出元素 \(0,11\),操作后栈变为 \(\{14,45,81\}\)

用伪代码描述如下:

```text
insert x
while !sta.empty() && sta.top()<xsta.pop()
sta.push(x)
```

使用

自然就是从栈顶读出来一个元素,该元素满足单调性的某一端。

例如举例中取出的即栈中的最小值。

应用

POJ3250 Bad Hair Day

  • \(N\) 头牛从左到右排成一排,每头牛有一个高度 \(h_i\),设左数第 \(i\) 头牛与「它右边第一头高度 \(≥h_i\)」的牛之间有 \(c_i\) 头牛,试求 \(\sum_{i=1}^{N} c_i\)

比较基础的应用有这一题,就是个单调栈的简单应用,记录每头牛被弹出的位置,如果没有被弹出过则为最远端,稍微处理一下即可计算出题目所需结果。

另外,单调栈也可以用于离线解决 RMQ 问题。

我们可以把所有询问按右端点排序,然后每次在序列上从左往右扫描到当前询问的右端点处,并把扫描到的元素插入到单调栈中。这样,每次回答询问时,单调栈中存储的值都是位置 \(\le r\) 的、可能成为答案的决策点,并且这些元素满足单调性质。此时,单调栈上第一个位置 \(\ge l\) 的元素就是当前询问的答案,这个过程可以用二分查找实现。使用单调栈解决 RMQ 问题的时间复杂度为 \(O(q\log q + q\log n)\),空间复杂度为 \(O(n)\)

习题

  • 洛谷 P5788【模板】单调栈
  • 洛谷 P1901 发射站

P2866 [USACO06NOV] Bad Hair Day S

  • 每次输入一头牛的身高,找比这头牛矮的,出栈
  • 剩下的牛皆可以看到这只牛
  • \(ans\) 值加等于栈中牛的个数
  • 这头牛入栈
#include<bits/stdc++.h>
using namespace std;
long long n,t;
long long ans; 
stack <long long> a;
int main() {cin>>n;for (int i=1; i<=n; i++) {cin>>t;while (!a.empty()&&a.top()<=t)  a.pop();ans+=a.size();a.push(t);}cout<<ans;return 0;
}

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

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

相关文章

日事清甘特图制作工具:一键生成,精准管理项目周期

还在为制作甘特图而焦虑吗?别担心,日事清甘特图重磅登场,轻松帮你完美化解难题,让复杂任务规划变得简单高效!在工作中,我们很多岗位都经常需要对项目进度进行追踪,例如人事经理需要要追踪招聘进度或员工培训计划, 项目经理负责监督项目的各个阶段以保证按计划执行, 软…

网站自动备份同步工具,自动备份同步工具有哪些?

网站自动备份同步工具是保障网站数据安全的关键,需兼顾实时性、可靠性、易用性。以下是分场景推荐的工具及部署方案:一、工具分类推荐80KM备份软件 功能:支持多种备份方式,如系统备份、磁盘备份、文件备份等,支持定时备份。 步骤:管理端点新增,不管选择从管理端备份到客…

智慧运维如何赋能现代医院?看某中西医结合医院的数字化转型之路

在医疗信息化浪潮中,某中西医结合医院作为一家集医疗、教学、科研于一体的三甲医院,始终走在创新前沿。面对业务系统庞杂、跨部门协作效率待提升等挑战,医院携手采和科技,以“智慧运维”为核心理念,开启了一场数字化转型的深度实践。 痛点破局:从“人找服务”到“服务找人…

day:29 断点

一、断点介绍 1.为什么要打断点呢? 接口测试可以不需要管前端的,主要测后端的功能 2.断点的作用: 1.开发人员,调试,出错后在某个位置打断点调试代码; 2.测试人员,测试,绕过前端的限制,测试后端的反应; 3.测试人员,构造数据,设置断点可篡改请求和返回的数据包。根据测…

UE5--002--EnhancedInput

1. IA_Pause 输入动作2. IMC_Default 输入映射上下文3. BP_FirstPersonCharacter蓝图3. 1 给PlayerController动态配置MappingContext3. 2 事件响应4. BP_FirstPersonGameMode蓝图4. Project Settings

信用消费的血栓问题-逾期订单诊断指南

在信用消费场景中,用户最怕看到的两个字莫过于“逾期”,但现实中,有相当一部分逾期记录源于系统协同中的技术误差。在本篇文章中我将揭示逾期订单的形成机制,并给出一些常见问题的解决方式,希望能帮助到大家。在信用消费场景中,用户最怕看到的两个字莫过于“逾期”——它…

Linux软件无法获取IGPV3的udp数据问题

问题 tcpdump能获取到数据,但是其他进程(内部获取udp)无法获取此udp数据 源是来自IGPV3的组播源,添加之前已经试过加入组播,但是还是无法接收到数据 解决 使用命令 systcl -a |grep rp_filter发现设备开启了严格的反向过滤关闭 net.ipv4.conf.all.rp_filter和net.ipv4.co…

如何通过接口测试驱动PLM效能提升?2025年禅道等工具实践白皮书

一、PLM系统测试的行业痛点与转型机遇 全球PLM市场规模预计2025年突破500亿美元,但企业调研显示,73%的PLM系统测试问题集中在接口兼容性与数据流断层。某汽车零部件厂商因BOM变更未触发ERP同步,导致生产线停摆4小时损失超千万。这暴露出传统测试方法的三大致命短板:数据孤岛…

WGFACS二氧化碳焊接节气装置

WGFACS二保焊节气设备的引入,无疑为焊接气体管理领域开启了一个全新的时代篇章。这款集创新技术于一身的节气装置,凭借其卓越的性能,成功地将焊接气体的消耗费用削减至原先的一半,为企业带来了显著的经济效益。其精妙的工作原理在于,整个焊接流程中,该系统能够智能地同步…

e 有上界的证明

众所周知,自然常数——\(e = \lim\limits_{n\to\infty}(1 + \frac{1}{n})^n\)。 不妨设 \(x_n=(1+\frac{1}{n})^n\)(\(n\ge 1\))。 那么 \(x_n\) 的上界是多少? \(\because\) 单调有界数列必定收敛。(收敛的定义:指会聚于一点,向某一值靠近。) \(\therefore\) 我们先证…

apisix~csrf插件

https://www.devzery.com/post/how-to-test-api-with-csrf-token-in-postman-complete-guide https://apisix.apache.org/docs/apisix/plugins/csrf/配置信息 {key: token的密钥expires:过期时间,默认7200(秒)name: token在cookie中的名称,默认是apisix-csrf-token }插件…