对动态规划的理解
就是将一个问题分解为很多个子问题,然后通过求解子问题来解决原问题。然后每个子问题的解都会被填入一个表中,便于对子问题解的利用和存放。动态规划的解决经常和递归方程联系在一起。其实只要有了解决思路和想法就可以由内而外的解决问题,但是有时候要想出解决方法也不容易,想出了之后编程起来就不会很复杂。
编程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做循环的时候想了很久,后来套用了矩阵相乘才得以解决。
原文:https://www.cnblogs.com/wwency/p/9957394.html