问题描述
在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数。求把所有石子合并成一堆的最小花费。
输入格式
输入第一行包含一个整数n,表示石子的堆数。
接下来一行,包含n个整数,按
接下来一行,包含n个整数,按
该博客介绍了如何使用动态规划解决石子合并问题。动态规划方程包括两种情况:当索引相等时,最优解为0;索引不等时,最优解为两堆石子合并的最小代价。解题思路是每次都假设合并的两堆石子已是最优状态,求解两堆石子总和的最小值。dp[i][j]表示从第i个到第j个石子合并的最优解,sum[i][j]表示这段区间内石子的总重量。
2万+

被折叠的 条评论
为什么被折叠?
