2019.7.22-7.27暑假集训总结
//呕,上周的还没有填坑,自裁
1.基础DP
子问题不独立,有公共的子子问题。动态规划对于公共的子子问题只求一次并保存避免重新计算。 通常适用于最优化问题。此类问题有多种可行解,每个解有个一值,希望找出一个最优的值的解(其中一个,可能有多个)。
设计的一般步骤 • 描述最优解的结构 递归定义最优解的值 按照自底向上的方式计算最优解的值 由计算的结果构造最优解 自顶向下的分析,自底向上的计算。
区间DP 顾名思义是在区间上DP,它的主要思想就是先在小区间进行DP 得到最优解,然后再利用小区间的最优解合并求大区间的最优解。 区间DP最关键的就是满足最优子结构以及无后效性 但其实动态规划都差不多要满足以上那俩 就这么简单。
2.背包(01,完全,多重)
3.状态压缩DP
4.数位DP
首先我们要清楚数位dp解决的是什么问题: 求出在给定区间 [A,B] 内,符合条件 f(i) 的数 i 的个数。条件 f(i) 一般与数的大小无关,而与数的组成有关 由于数是按位dp,数的大小对复杂度的影响很小