动态规划笔记(三)

复习

  1. 动态规划的本质是递归。一切动态规划的问题一定能写成递归的形式。递归的本质就是将原问题拆解为子问题,子问题再推导出原问题。递归里每个参数的组合都表示一个状态。
  2. 动态规划两个重要性质:最优子结构和重叠子问题。用递归式来处理掉后效性,使它变成无后效性。用空间换时间去除冗余。
  3. 四个基本解题步骤:
    3.1 设计暴力算法(递归算法),找到冗余
    3.2 找到冗余之后,消除冗余(一维数组,二维数组,三维数组,Map)
    3.3 把递归式整理成我们想要的状态转移方程
    3.4 用自底向上的编程方式来解决问题

01背包问题

  • 小偷由一个容量为W的背包,有n件物品,第iii个物品价值viv_ivi,且重wiw_iwi
  • 目标:找到xix_ixi使得对于所有的xi = { 0,1}x_i~=~\{0,1\}xi = { 0,1}
  • sum(wi∗xi)&lt;=Wsum(w_i*x_i) &lt;= Wsum(wixi)<=W,且sum(xi∗vi)sum(x_i*v_i)sum(xivi)最大
  • 套路:最大
    • 暴力回溯怎么写?
#include 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值