石子合并算是一道比较经典的题目了,这里讨论一下朴素的动态规划和GarsiaWachs算法。
最简单的就区间动态规划了。设f(i, j)(i < j)为合并第i堆石子到第j堆石子的最小代价:
(需要枚举一个p)
以区间长度为阶段,时间复杂度为三次方的。一个对决策的优化,可以把转移优化为O(1)的。设g(i, j)为f(i, j)枚举的决策最优的p,那么显然有:
这样子枚举的p的范围就大大缩小了,p的取值范围是比较小的,只有一两个左右。然而,该算法的时间和空间复杂度都已经超出限制了。这时候Gar