股票交易

这里尝试利用单调队列优化,这里不好直接用单调队列的原因是因为(以买为例)ap[i]k1不是只与下标有关(这里下标为jk1)的

所以解决方案一:我们将下标变成一个整体,再把后面的代价换掉然后将与下标无关的直接提出去

解决方案二:利用“蚯蚓”那一道题目的思路进行单调队列的维护

提一嘴,这里在某一天买卖股票是因为每股股票会产生利润吧,既然会产生为啥不直接买卖到最大限度呢?这里又没有边际收益递减啥的。。不清楚

类似的:围栏。只不过这道题目不用换元而是直接提取而已

update 2024.7.5

还是看这篇题解吧,注意的就是不要直接认为进行交易的话一定会进行到上限吧(虽然我也不知道为什么进行不到);然后注意单调队列优化的时候,是先将所有维度当成定值看上下界是否同时单调变化,所以我们要像题解这个样子拆开,然后就可以看出是否可以单调队列优化了

update 2024.9.8

比较两种题解的做法,会发现其实本质是一样的,只不过第二种题解是直接将第一种题解的jk1写成了x(也就是直接进行了换元这步过程),然后就很容易发现单调队列优化

所以无论写成哪种形式,本质上还是要看,对于当前状态f[i][j],我们发现转移的区间长度是固定的,为as[i],此时就要考虑单调队列优化,一种不行就换一种写法就好了

一定要牢记,转移区间长度固定考虑单调队列优化;实际上这是单调队列优化最明显的标志,当然不会局限于这个条件,就像蓝书说的,只要上下界同时单调变化就可以考虑单调队列优化

posted @   最爱丁珰  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示