Dynamic Programming

根据九章算法的讲义,动态规划问题主要分为6种情况:

    1. 坐标型动态规划
    2. 序列型动态规划
    3. 双序列型动态规划
    4. 划分型动态规划
    5. 背包型动态规划
    6. 区间型动态规划

其中前三种在九章算法班中有讲解,后三种在九章算法高级班中涉及。

主要在下列3种情况下使用到动态规划:

    1. 求最大值或者最小值
    2. 判断方案是否可行
    3. 统计方案的个数

动态规划问题有4点要素:

    1. 状态 state,也就是f[i]或者f[i][j]的物理意义是什么
    2. 方程 function,也就是f[i]和f[i - 1]的关系
    3. 初始化 initialization,这个方程涉及2个相邻state所以对于state 0肯定是需要初始化的
    4. 答案 最大的状态是什么?规划的重点是什么?

results matching ""

    No results matching ""