Minimum Merge Cost - 最小合并代价
问题
将长度为的序列进行合并,每次合并将相邻的两个元素和合并为一个新的元素,并且,合并的代价也为。经过次合并后,序列被合并为1个数字,这个过程的代价是之前所有合并的代价总和。求出将序列合并为一个数字的最小合并代价。合并过程如图:
例如序列,合并过程有和,最终合并代价为。
解法
设为序列中区域的所有元素之和,为合并区域的最小代价,其中。因此有如下状态转移方程:
初始化,对于同一个元素不需要合并,因此;
初始化,对于不同的元素需要合并,设未知的;
将和这两个区域的元素合并(),因此,选择该范围中所有结果的最小值即可;
即为序列的最小合并代价。该算法的时间复杂度是。