算法第三章作业

一. 对动态规划的理解

动态规划通常用于求解具有某种最优性质的问题。在这类问题中,可能会出现许多可行解,每一个解对应于一个值,动态规划可以帮助我们找到具有最优值的解。动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,可以用动态规划求解的问题,分解得到的子问题不是相互独立的,而分治法却会出现有些子问题被重复计算很多次的情况,动态规划可以避免大量的重复计算。

 

二. 递归方程

1.

dp[i] = max(dp[j]+1, dp[i])

d[i] = 长度为i+1的递增子序列的长度

2.

r(i,j) = min(r(i,k)+r(k,j)) (i<k<j) , r(i,i) = 0

 

三. 结对编程

在结对编程的过程中,可以找到解决一个问题的不同思路。解题时分工合作,也加快了解题的效率。

 

posted @ 2019-11-02 18:07  LQA00  阅读(97)  评论(0编辑  收藏  举报