随笔分类 - 数据结构——单调队列/单调栈
摘要:题意 将序列$a_i$分成任意$k$部分,要求一部分的$a$值和不超过$m$;最小化( 每段权值的最大值 之和)$,(n\leq 100000)$ 解法1 显然动态规划,设$f_i$表示处理前$i$个数的最小值,$s$为前缀和,状态转移:$f_i=f_j+max(a_{j+1},a_{j+2}...
阅读全文
摘要:"题目" 给一个序列,支持单点修改,每次修改后输出对这个序列做单调递增栈后栈的大小 思路 线段树维护单调栈模板题 先开个线段树,设$query(rt,l,r,x)$表示询问$[l,r]$这段区间中比$x$大的数形成的单调栈大小,$mx[rt]$表示该子树中的最大值 显然有$query(rt,l,r,
阅读全文
摘要:"题目" 思路 看到题目和数据范围想到设$f_{i,j}$为前$i$天,当前有$j$股股票时的最大收益 容易证明,$j$固定时,$f_{i,j}$随$i$增加而单调不降(即你可以不买不卖维持现状),那么$f_{i,j}$可以从$f_{i w 1,k}$转移而来 $k j$时为卖,两者受到$as$和$
阅读全文
摘要:题意 有n个点$(x,y)$,求一个在$x$轴上的最小区间,使得它包含的所有点中的$y$的极差至少为$d$,$x,y,d\leq 10^6$ 思路 将点按$x$排序,显然$2 pointers$,需要随时维护一个滑动窗口的最大值和最小值,显然单调队列(也可以用离散化+ST表或者线段树,不过多了个lo
阅读全文

浙公网安备 33010602011771号