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

软件工程2201唐珂 2022级 2023-10-27 16:33:25

1、动态规划方程

(1)状态表示:

dp[i][j]表示将第 i 堆石子到第 j 堆石子合并成一堆的最小代价

(2)状态方程:

dp[i][j] = min(dp[i][k] + dp[k+1][j] + sum[i][j]),i ≤ k < j

其中sum[i][j]表示第i堆石子到第j堆石子的总质量。

(3)边界条件:

当 i = j 时,dp[i][j] = 0,即此时合并石子的代价为0。

(4)时间、空间复杂度分析:

时间复杂度为O(N^3)

空间复杂度为O(N^2)

2、结合本章的学习,总结你对动态规划法的体会和思考

动态规划是不断将一个大问题分解为若干子问题,并利用求解子问题的最优解从而获得整个问题的最优解。我认为动态规划的重中之重以及难点就是写出状态方程,而状态方程的边界条件以及数组循环的遍历方向也是我们不可忽略的问题,代码如何实现又是一个重点。所以我认为我们应该着重加强对于问题的理解分析能力,根据题目所给的内容去分析问题以及分解子问题然后进行求解。

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

434

社区成员

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

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