第三章作业

  1. 1.     你对动态规划算法的理解(2分)
  2. 2.     分别列出编程题12的递归方程(2分)
  3. 3.     说明结对编程情况(1分)

 

  1. 1.     动态规划算法动态规划是针对一类求最优解的问题的算法,其核心是将一个问题分解成为若干个子问题,部分类似于分治的思想,通过求每一次的最优决策,来得到一个最优解。在这里最重要的就是子问题的思想。求解的方式有两种:①自顶向下的备忘录法 自底向上。

 

2.第一题用到了最长公共子序列的方法:

 

第二题:

定义f[i][j]为站点i到站点j的最少租金:

f[i][j] = min { f[i][k] + f[k][j] }

其中 i<k<j, 0<=i,j<=n-1

则最少租金为 f[0][n-1]

 

3.编程期间,没有遇到什么很大的问题,就是解题第一步需要想出递归方程,然后代码实现就简单很多了,不过第二题游艇问题,要得到最低开销,就得从最底层开始,逐渐向上计算每两个站之间最低开销,并记录在预先设定的数组中,两个站可能是相邻的,也可能是不相邻的。

posted @ 2018-11-04 14:53  荷里活DJ  阅读(130)  评论(0编辑  收藏  举报