递归 dfs 记忆化搜索 动态规划

今天做洛谷P1434 [SHOI2002]滑雪 的时候仔细想了想记忆化搜索

现在总结一下

为了描述问题的某一状态,必须用到该状态的上一状态,而描述上一状态,又必须用到上一状态的上一状态……这种用自已来定义自己的方法,称为递归定义。

而dfs作为一种回溯算法,是从问题的某一种可能出发, 搜索从这种情况出发所能达到的所有可能, 当这一条路走到” 尽头 “的时候, 再倒回出发点, 从另一个可能出发, 继续搜索。

我的理解是 dfs逻辑上是一种回溯 实现却是用递归来实现的

那么什么是记忆化搜索呢,在进行dfs的时候,搜索到的一种可能性如果已知,就没必要继续往下搜索,直接读取之前记忆的结果即可

动态规划就是一个最优化问题,先将问题分解为子问题,并且对于这些分解的自问题自身就是最优的才能在这个基础上得出我们要解决的问题的最优方案 无后效性是一个问题可以用动态规划求解的标志之一

由此可以看到DP与记忆化搜索的不同之处:

记忆化搜索,本质还是搜索,所以它的更新是从下往上的,即由后一个状态来更新

DP的更新是从上往下的,即由前一个状态来更新

所以转化成DP时,要将记忆化搜索的更新过程反过来

之后做题再好好体会一下

转载于:https://www.cnblogs.com/dyhaohaoxuexi/p/10934392.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值