线段树+dp
Posted tzy666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线段树+dp相关的知识,希望对你有一定的参考价值。
题目传送门:https://ac.nowcoder.com/acm/contest/4743/E
题解:可以翻看我的提交记录。
首先,让我们看看问题不修改的话我们怎么做。
设dpi,jdp_{i,j}dpi,j?表示第iii堆石子搬运jjj次需要的最小代价。对于单堆石子,最优的策略是把aia_iai?个石子均分在jjj次搬运上。可以证明这是最优的策略:
假设这样产生的花费为sumsumsum,而每次搬运的个数都为xxx,我们把某次搬运的个数−1-1−1,加到另一次搬运上,重新计算的花费为sum−(x∗x−(x−1)∗(x−1))+((x+1)∗(x+1)−x∗x)sum-(x*x-(x-1)*(x-1))+((x+1)*(x+1)-x*x)sum−(x∗x−(x−1)∗(x−1))+((x+1)∗(x+1)−x∗x),对于任意的x>0x>0x>0,一定有(x+1)∗(x+1)−x∗x>x∗x−(x−1)∗(x−1)(x+1)*(x+1)-x*x>x*x-(x-1)*(x-1)(x+1)∗(x+1)−x∗x>x∗x−(x−1)∗