动态规划

动态规划(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优化(三)四边形不等式优化实例讲解

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)