算法第3章作业

Posted on 2018-11-04 21:18  黄钦伟  阅读(90)  评论(0编辑  收藏  举报

1.

动态规划算法的基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。由于动态规划解决的问题多数有重叠子问题这个特点,为减少重复计算,对每一个子问题只解一次,将其不同阶段的不同状态保存在一个二维数组中。

2.

第一题并非递归算法

第二题定义a[i][j]表示站点i到站点j的最低租金,a[i][j]=min{a[i][k]+a[k][j]},其中1<=i<k<j<=n

3.

在思考第一道问题的时候,没有一个完整的思路,跟同学一块探讨没有办法的情况下向其他小组的成员提问,最终知道了这道题并非使用动态规划思想来得以求解的。。第二道题在列出递归方程之后很快就写出了算法的大概主体,在与同学一块修改后,算法很快就完成了