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

软工2201杨雪琦 2022级 2023-11-02 16:55:19

1.

(1)状态表示:

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

c[i][j]表示将第i堆石子到第j堆石子合并的最小代价;

(2)状态方程

for(int k=i;k<=j;k++)

{

c=min(c[i][k]+c[k+1][j])+sum[i][j];

}

(3)临界条件:

i==j时,c[i][j]=0

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

时间复杂度:O(n^3)   

空间复杂度:O(n^2)

2.学习动态规划的体会和思考

动态规划算法利用了在运用递归算法解决问题时,子问题的重叠性,利用二维数组构建成表格的形式将这些已经解决过的子问题答案保存下来,从而提高计算时的解题效率。只要能够分析出问题的状态方程和临界条件,那么问题就可迎刃而解。

 

 

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

434

社区成员

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

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