动态规划是自底向上的,先处理子问题,然后再处理更大的问题。这样就需要知道子问题和更大的问题之间的联系。我们能够确定出子问题并且能够正确的求解它,从而从子问题推出要解决的问题的解。
但是,如果当我们比较难确定出子问题是哪一个,比较困难的求出子问题的答案时,可以使用记忆化搜索
以洛谷上的滑雪题为例
对于这道题,我们没办法马上求得到达某个点的最长长度
因此我们需要使用递归方法,并且使用记忆化搜索来进行优化
思路
使用递归计算出,到x,y点的最长滑坡长度
遍历点(x,y)的上下左右四个点,如果一个点的值是小于点(x,y),说明这个点可以滑到点(x,y)