算法第三章作业

随声附和 提交于 2019-12-03 09:54:21

1. 你对动态规划算法的理解

适用于解最优化的问题,像是分治法的优化与升级吧。与分治法类似,基本思想是将待解决的问题分成多个子问题,先求解子问题,再结合子问题得到原问题的解。不同的是,动态规划分解得到的子问题不是相互独立的。而且,通过一个表来记录所有已解决的子问题答案,避免了分治法中的大量重复计算。

 

2. 分别列出编程题1、2的递归方程

编程题1的递归方程:m[i] = max {m[k] | a[k] < a[i]}  (1 <= k < i)

编程题2的递归方程:m[i] = min {c[i][k] + m[k]}   (i<k<=n)  (m[i]表示从i站出发到目的地的最小费用、c[i][j]表示从i站到j站的费用)

                                  边界: m[n] = 0

 

3. 说明结对编程情况

在这次结对编程过程中,我发现了自身存在的问题,很多时候都是能想出解决问题的方法,能写出递归方程,却经常卡在打代码上。日后一定要加强代码这一方面。除此,结对编程通过交流提高了解题的效率,希望能够继续一起加油吧!!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!