DP动态规划(Fibonacci),完全背包例题

本文深入浅出地介绍了动态规划的基本概念,通过递推和记忆化搜索实例阐述,探讨了如何利用DP避免重复计算,以斐波那契数列为例展示了其在优化算法中的应用。还给出了A+B问题的升级版解法,涉及分解素数和计算方案总数的动态规划算法实现。
摘要由CSDN通过智能技术生成

基本理念

说到这个题目,我们要先明白这个DP(Dynamic Programming)的概念是什么:

动态规划(dp)是研究多步决策过程最优化问题的一种数学方法。在动态规划中,为了寻找一个问题的最优解(即最优决策过程),将整个问题划分成若干个相应的阶段,并在每个阶段都根据先前所作出的决策作出当前阶段最优决策,进而得出整个问题的最优解。即记住已知问题的答案,在已知的答案的基础上解决未知的问题。

动态规划有两种实现方法,一种是递推,另一种是记忆化搜索。两种方法时间复杂度完全相同,但是,递推的效率要比记忆化搜索高不少,而且以后的大量优化技巧都建立在递推上(滚动数组、单调队列、斜率优化……)。所以,我们一般用递推来写动态规划。

那我们再来看一张图片:

 "那些记不住过去的人注定要重蹈覆辙"------什么意思?这其实是DP的一个设计初衷,就是我们在

写代码时会很容易碰上操作上次所得的结果,遇到这种情况,我们不需要再重新计算一遍,得出结

果,可以记住上一次操作的结果直接计算,这样我们就大大减少了时间的消耗,降低时间复杂度。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值