决策单调性——二分栈

本文介绍了如何利用二分栈解决决策单调性问题,通过分析决策函数的增长速度,对比不同决策的优劣,利用单调队列的原理优化求解过程,最终实现时间复杂度为O(nlogn)的算法。

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

今天我们来了解一下处理决策单调性的神器——二分栈。

ps:这种算法是单调队列的升级版,既是栈又是队列,就叫它二分单调双端队列

题目引入——JSOI2016 灯塔

对于每个 i i i,求解

max ⁡ j ≤ i { a j + i − j } \max_{j \le i}\{a_j + \sqrt{i - j}\} jimax{ aj+ij }

我们令 f j ( i ) = a j + i − j f_j(i) =a_j+\sqrt{i-j} fj(i)=aj+ij j j j 称为 i i i决策。设使 f j ( i ) f_j(i) fj(i) 取得最大值的 j j j p i p_i pi,我们称 p i p_i pi i i i最优决策

单调性决策的发现

我们尝试对每一个最优决策 p i p_i pi 进行分析。

对于 q i ( 简称 q ) < p i ( 简称 p ) q_i(简称q) < p_i(简称p) qi(简称q)<pi(简称p)

f p ( i ) ≥ f q ( i )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值