算法第三章作业
1. 你对动态规划算法的理解(2分)
动态规划是把待求解的问题分解成若干个子问题,每个子问题求解一次,用一个表记录每个子问题的解然后从子问题的解中找到原问题的解。
解题思路是:(1)找出最优解的性质,刻画其结构特征;(2)递归地定义最优值;(3)以自底向上的方式计算最优值;(4)根据计算最优值时得到的信息计算最优解。
2. 分别列出编程题1、2的递归方程(2分)
(1)m[i] = max(m[j]+1, m[i]);
(2)m[1][n]=min{m[1][n], m[1][k]+m[k][n]}
3. 说明结对编程情况(1分)
队友把题编了一遍,我们互相交流解题思路,遇到问题互相指出,自己又独立编了一遍,加深了对动态规划算法思想的理解。