动态规划(一)什么是动态规划?
2023-12-28 22:17:16
1.动态规划是什么?
动态规划:动态规划常见基础题目之一。
官方的解释是:
????????动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。
?我的理解:
? ? ? ? 动态规划总是体现在当前状态由前面的状态推导而来,前面的状态由更前面的状态推导。最开始的状态由定义给出,按照递推公式一步一步推导到当前状态。
? ? ? ? 动态规划=给定起始+按照一定规律逐步推导到下一位置状态。
2.动态规划一般用于解决什么问题?
常见题型:
- 斐波那契数列、爬楼梯问题
- 完全背包、背包问题
- 打家劫舍(树形DP)
- 股票问题
- 子序列问题
拔尖题型:
- 区间DP 、概率DP
3.动态规划解题一般有哪些步骤?
- 明确dp数组及下标的含义。
- 确定递推公式,但是递推公式只是动态规划的一部分,而非全部
- dp数组初始化
- 确定遍历顺序:从前往后?从后往前?
- 打印dp数组, 用于debug验证等。
代码实现的步骤与思路的步骤是有区别的:
- ? ? ? ? 定义dp数组
- ? ? ? ? 初始化数组
- ? ? ? ? 遍历
- ? ? ? ? 递推公式
4.总结
题型识别: 给定初始状态,后面的状态总是由前面的状态决定。
解题步骤:动态规划五部曲:dp[i]含义、递推公式、初始化、遍历顺序、打印debug
掌握方式:多题练习
文章来源:https://blog.csdn.net/lt_BeiMo/article/details/135271900
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!