算法设计与分析第三章作业

jr唔识编程 2022级 2024-01-12 15:09:42

(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. 结合本章的学习,总结你对动态规划法的体会和思考

动态规划算法正是利用了这种子问题的重叠性质,对每一个子问题只计算一次,然后将其计算结果保存在一个表格中,当再次需要计算已经计算过的子问题时,只是在表格中简单地查看一下结果,从而获得较高的效率。

...全文
59 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

273

社区成员

发帖
与我相关
我的任务
社区描述
广东外语外贸大学信息科学与技术学院
算法 高校
社区管理员
  • brisksea
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧