第三章作业

对动态规划的理解

就是将一个问题分解为很多个子问题,然后通过求解子问题来解决原问题。然后每个子问题的解都会被填入一个表中,便于对子问题解的利用和存放。动态规划的解决经常和递归方程联系在一起。其实只要有了解决思路和想法就可以由内而外的解决问题,但是有时候要想出解决方法也不容易,想出了之后编程起来就不会很复杂。

编程1的递归方程

m[i]=max(m[j]+1) ,其中m[i]表示第i个数的最长递增子序列,其中0<=j<i。

编程2的递归方程

m[i][j]=min(m[i][k]+m[k][j])

编程情况

第一题还算是比较顺利,找到被比较的数前面比他小的数的最长递增子序列再加一,通过找到子问题然后求解。第二题在用k做循环的时候想了很久,后来套用了矩阵相乘才得以解决。

posted @ 2018-11-14 12:53  wwency  阅读(85)  评论(0编辑  收藏  举报