稍微说说动态规划和贪心

    最近在做USACO的training,又碰到了greedy algorithm的训练章节。回想起来大学时光学习dynamic programming的时候,一直搞不清,后来看Introduction to Algorithm,突然顿悟,那种感觉真的是很爽,我觉得一直学不明白,有一天突然顿悟的感觉,大家都应该去体验一下,真的很爽。

    greedy的思想太简单了,每次都找最优的,也就是每次的结果只有一个点咯。不过应用greedy algorithm的时候需要特别注意条件,局部最优即全局最优。这是多于dynamic programming的一点。

    然后dynamic programming吧,它和greedy的不同是什么?没有局部最后即全局最优的这种优势,但这次的状态是基于前一状态的,那么前一状态是什么呢?不好意思我不知道。不知道怎么办,列出前一状态的所有状态,前一状态有哪些?还是不知道,那怎么办呢,从第一个阶段的状态开始记录,然后基于第一状态算出第二状态的最优,那么全局最优一定存在于这些局部最优的一个路线中。所以dp每次记录的是一系列状态,而不是像greedy只记录当前的最优解这一个状态。

    所以才有了所谓的打表,理解了这一个过程,就理解了dp后续所有的优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值