斜率优化dp
首先让我们来回顾一下:
这是我6.23说的:
这是7.9说的:
这是7.10说的:
这是7.11说的:
然后请回头看看本文的标题。好的。一个显然的事实是,我放飞自我了。直接原因是:NOIP历年真题会做的都做完了;根本原因是:学新的东西就是比较有意思。当然我可以找到数十个理由来解释我学新东西的合理性和必要性,但是真正的原因就是这个。
不过PJ都开始考二分+单调队列dp了,TG考斜率也不是不可能的事情。(喜新厌旧的借口 1/1)
首先来看一道题目:
玩具装箱:https://www.lydsy.com/JudgeOnline/problem.php?id=1010
大概是一道斜率优化经典题,不过SC的时候rqy说也可以用四边形不等式优化。
尝试来概括一下一句话题意:
把一个长度为$N$的序列分成若干段并给定一个常数L,每段的代价是
最小化这个代价。($1<=N<=50000$)
朴素的写法当然非常简单啦,就是一个N^2的类似于暴力的dp就可以,问题是它过不了啊...
这时候就要请出神奇的斜率优化啦!
把暴力的式子进行一番化简,把只跟$j$有关的放在右边,对于每一个S把她加一,L也加一,可以使式子简约一点。
加一后 --->
展开:
再进行一些非常有意思的替换。