273
社区成员
发帖
与我相关
我的任务
分享
(1)状态表示:
sum[i][j]为第i堆到第j堆的石块总质量,dp[i][j]为合成第i堆到第j堆石块的最小代价,a[n]为每堆石头的质量。
(2)状态方程
dp[i][j] = min(dp[i][k] + dp[k + 1][j] + sum[i][j]). 其中i<=k<j
(3)边界条件:
if(i == j) dp[i][j] = 0,当i=j时,即只有一堆石头,无需合成,代价为0。
(4)时间、空间复杂度分析:
时间:O(n^3)
空间:O(n^2)
2. 结合本章的学习,总结你对动态规划法的体会和思考
动态规划算法正是利用了这种子问题的重叠性质,对每一个子问题只计算一次,然后将其计算结果保存在一个表格中,当再次需要计算已经计算过的子问题时,只是在表格中简单地查看一下结果,从而获得较高的效率。