区间最值——单调队列の板子

单调队列是一种特殊队列,保证队列内元素单调,常用于求固定长度区间内的最值问题。它通过维护头尾指针,确保单调性,例如在POJ-2823等题目中,可以高效求解区间最小值或最大值。单调队列可用于DP的斜率优化,如在修剪草坪、生日礼物等题目的解决方案中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

队列是啥都知道对吧?

单调队列就是一个保证队列内元素单调的队列,这个队列和普通队列在操作上最大的不同就是既可以从队头弹出元素也可以从队尾弹出元素。队尾弹出是为了保证队列的单调性。

为啥我要让队列单调?

单调队列的基本用途就是求固定长度的区间的最值。。啊我不是说像rmq问题那样随便给个区间让求最值啥的。。它可能要求一系列区间,而这些区间的左端点和右端点排起序来都是单调的,那么用单调队列扫一遍就可以 O(n) 出解。其实有一些时候也不需要真的开出一个队列来啦。。平常用得很多的那种两个指针扫一遍的方法实际上跟单调队列就是差不多的啦。
举个例子来说,比如有一个DP方程是 f[i]=min{ f[j

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值