题目大意
有 nnn 堆石子,每次可以选择一堆将至多 kkk 个石子移动到相邻的石子堆中,求将所有石子合并到一堆所需要的最少操作次数。
解题思路
如果要将第 iii 堆石子合并到第 i+1i+1i+1 堆中,假设第 iii 堆有 xxx 个石子,所需要的操作次数为 ⌈xk⌉\lceil\frac{x}{k}\rceil⌈kx ⌉ 。
如果最终所有石子会合并到第 iii 堆中,由于中间计算过程中涉及到上去整,所以 [1,i−1][1,i-1][1,i−1] 堆一定是从第 111 堆向右合并的,[i+1,n][i+1,n][i+1,n] 堆一定是从第 nnn 堆向左合并的。我们可以先预处理合并前缀所需最小操作次数以及合并后缀最小操作次数。
所以我们可以枚举最终合并到哪一堆中,统计合并成一堆所需最小操作次数即可。
参考答案