动态规划

点击打开在线编译器,边学边练

动态规划

动态规划(Dynamic Programming, DP),一般简称DP

动态规划是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。

由于动态规划并不是某种具体的算法,而是一种解决特定问题的方法,更是一种思维、思路。因此它会出现在各式各样的数据结构中,与之相关的题目种类也更为繁杂。

在程序竞赛中,计数等非最优化问题的递推解法也常被不规范地称作 DP,因此本章将它们一并列出。事实上,动态规划与其它类型的递推的确有很多相似之处,学习时可以注意它们之间的异同。


本章内容:

1.什么是动态规划?

2.动态规划概念和实例讲解

3.什么是记忆化搜索?

4.记忆化搜索实例讲解

5.超详细背包DP九讲(算法分析+问题分析+代码分析)

6.区间DP实例讲解

7.DAG上的DP实例讲解

8.树形DP概念和实例讲解

9.数位DP概念和实例讲解

10.什么是状态压缩DP?

11.状态压缩DP图文实例讲解(一)

12.状态压缩DP图文实例讲解(二)

13.什么是哈希?

14.插头DP图文实例讲解

15.计数DP实例讲解

16.什么是概率DP?

17.概率DP实例讲解

18.什么是线性DP?

19.线性DP图文实例讲解

20.动态DP实例讲解

21.DP优化(一)单调队列/单调栈优化实例讲解

22.DP优化(二)斜率优化实例讲解

23.DP优化(三)四边形不等式优化实例讲解


本文固定URL:https://www.dotcpp.com/course/dp/

算法竞赛教程
第一章 算法基础
第二章 搜索算法
第三章 排序算法
第四章 字符串相关
第五章 数学相关
第六章 动态规划
第七章 数据结构
第八章 图论
第九章 计算几何
第十章 其他算法
Dotcpp在线编译      (登录可减少运行等待时间)