本题是利用cdq分治 实现斜率优化的一个题目
斜率优化之前做的几个题都是斜率单调,并且插入点时由于点在某一维单调,所以仅仅操作队首和队尾就能完成优化了
但是本题显然不是
主要参考了两个东西
从《Cash》谈一类分治算法的应用
(Day1)cdq分治相关
这两个直接在百度上搜 ,第一个出来的就是
本题的题意是
一个公司获得了一个厂房n(10^5)天的使用权
和一笔启动资金C(10^9),准备在n天里租借机器生产来获得收益
可以租借的机器有M(10^5)个,每个机器有四个值,D,P,R,G (D<=n, P,R,G都是10^9)
表明你可以再第D天花费P费用(首先手里必须有那么多钱)
租借这个机器,从D+1天开始该机器每天产生G的收益,在你不需要机器时
可以卖掉这个机器,一次获得R的钱
需要注意的是:
厂房里只能停留一台机器
不能再购买和卖出机器的那天操作机器,但是可以再同一天卖掉一台机器再买一台
在第n+1天,必须卖掉手里的机器
问n+1天后能获得的最大资金
根据这个题意
我们可以得到一个dp转移方程
首先要想的问题是是否有场地就要放机器
最开始的时候肯定不是这样,因为怕买到坑的机器很可能会亏钱,但是假设你买到了一台好的机器,在下一个机器进来之前,你肯定是一直运转下去的
然后得把所有的时间都离散化,就是每个机器的D
然后用f[i]表示在D[i]时刻卖掉手里的机