1.动态规划是什么:
动态规划是解决多阶段决策问题的一种方法。
2.动态规划的思想是:
在做每一步决策时,列出各种可能的局部解
依据某种判定条件,舍弃那些肯定不能得到最优解的局部解。
以每一步都是最优的来保证全局是最优的。
3.动态规划问题的一般解题步骤:
判断问题是否具有最优子结构性质,若不具备则不能用动态规划。
把问题分成若干个子问题(分阶段)。
建立状态转移方程(递推公式)。
找出边界条件。
将已知边界值带入方程。
递推求解
4.动态规划(01背包)
题目: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。
基本思路: 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放
f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是: f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}
5。动态规划(区间dp)
题目:有一根长度为L的木棍,木棍上面有M个切割点,每一次切割都要付出当前木棍长度的代价,问怎样切割有最小代价
分析: 区间动态规划问题一般都是考虑,对于每段区间,他们的最优值都是由几段更小区间的最优值得到。将一个区间问题不断划分为更小的区间直至一个元素组成的区间,枚举他们的组合,求合并后的最优值。设F[i,j](1<=i<=j<=n)表示区间[i,j]内的数字相加的最小代价 , 最小区间F[i,i]=0(一个数字无法合并,∴代价为0)每次用变量k(i<=k<=j-1)将区间分为[i,k]和[k+1,j]两段