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

sudaKK12 2022级 2023-11-08 18:00:57

1、(1)状态表示:arr[i]表示第i对石子的重量;d[i][j]表示合并第i堆到第j堆石子的最小代价

        (2) 状态方程:d[i][j] = min {d[i][j-2] + arr[j-1] + arr[j], d[i+2] + arr[i] + arr[i+1]},  j-i > 1;

                                      = arr[i] + arr[j], j-i = 1;  

     (3)边界条件:j - i = 1;

     (4)时间、空间复杂度分析:O(n^2)

2、动态规划算法就是通过不断地拆分问题,但是这里和之前的递归又有所不同,因为动态规划类的问题中,分解得到的子问题一般不会是相互独立的,也就是说有可能得到相同的子问题,所以在计算中,如果单单应用了递归,有些子问题就会被重复计算。因此一般需要用动态规划解决的问题需要有最优子结构性质和重叠子问题性质。

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

434

社区成员

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

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