自学动态规划续

1.使用动态规划的一些技巧
使用动态规划时,要么考虑拿走整件商品,要么考虑不拿,而没法判断该不该拿走商品的一部分。但使用贪婪算法可轻松地处理这种情况!
首先,尽可能多地拿价值最高的商品;如果拿光了,再尽可能多地拿价值次高的商品,以此类推。动态规划可帮助我们在给定约束条件下找到最优解。
在背包问题中,我们必须在背包容量给定的情况下,偷到价值最高的商品。在问题可分解为彼此独立且离散的子问题时,就可使用动态规划来解决。
每种动态规划解决方案都涉及网格。单元格中的值通常就是要优化的值。在前面的背包问题中,单元格的值为商品的价值。每个单元格都是一个子问题,因此我们应考虑如何将问题分成子问题,这有助于找出网格的坐标轴。
2.动态规划的一些基本问题
递推 递推一般形式比较单一,从前往后,分类枚举就行
背包 也就是之前举得那个例子,不过那只是背包问题最简单0-1背包问题。
除此之外还有完全背包 、分组背包 、多重背包
LIS(最长递增序列)维护一个当前最优的递增序列——找到恰好大于它更新LCS(最长公共子序列)两个单词中都有的序列包含的字母数
3.小结
需要在给定约束条件下优化某种指标时,动态规划很有用。
问题可分解为离散子问题时,可使用动态规划来解决。每种动态规划解决方案都涉及网格。
单元格中的值通常就是要优化的值。
每个单元格都是一个子问题,因此需要考虑如何将问题分解为子问题。
没有放之四海皆准的计算动态规划解决方案的公式。
看了很多文章,首先说明的就是DP是ACM中难度相当高的一部分,并且是考察重点,代码量少并且实现方式简单易懂。
看来要下更多功夫去学了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值