玩具装箱

不难写出DP\(f[i]=min(f[j]+(i-(j+1)+sum[i]-sum[j]-L)^2)\),其中\(sum[i]=\sum_{j=1}^{i}c[j]\)

我们发现当\(i\)固定时,\(i+sum[i]-1-L\)是常量,故令其为\(C\),然后展开就更容易

展开后有\(C^2+j^2+sum[j]^2-2Cj-2Csum[j]+2jsum[j]\)

如果不知道这是斜率优化的话,千万不要做到这里就做不下去了,觉得没有\(i\)\(j\)的乘积,实际上把\(C\)换回去就有了

然后提醒一个代码的细节,这里的\(j\)是可以取\(0\)的,故单调队列的时候初始化是放\(0\)进去不是放\(1\)进去

posted @ 2024-03-02 23:23  最爱丁珰  阅读(3)  评论(0编辑  收藏  举报