![Python编程300例:快速构建可执行高质量代码](https://wfqqreader-1252317822.image.myqcloud.com/cover/209/36862209/b_36862209.jpg)
上QQ阅读APP看书,第一时间看更新
例53 石子归并
1.问题描述
石子归并的游戏。有n堆石子排成一列,目标是将所有的石子合并成一堆。合并规则如下:
每一次可以合并相邻位置的两堆石子;每次合并的代价为所合并的两堆石子的重量之和;
求出最小的合并代价。
2.问题示例
输入[3,4,3],输出17,合并第1堆和第2堆=>[7,3],score=7;合并两堆=>[10],score=17。
输入:[4,1,1,4],输出18,合并第2堆和第3堆=>[4,2,4],score=2,合并前两堆=>[6,4],score=8;合并剩余的两堆=>[10],score=18。
3.代码实现
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P68_24665.jpg?sign=1739316872-Gg13rGXnJnPDMC9Y2cgcHqOF7nQQvpkK-0-da5d7acb3dd27f60aceb288c37adaf07)
4.运行结果
输入:[3,4,3]
输出:17