• 动态规划三大重要概念:最优子结构边界状态转移公式(问题规模降低,如问题由 nn 的规模降低为 n−1n-1 或 n−2n-2 及二者之间的关系);

0. 爬台阶

F(n)⇒F(n−1)+F(n−2)

F(n) ⇒ F(n-1)+F(n-2)

  • F(n−1),F(n−2)F(n-1), F(n-2) 即是 F(n)F(n) 的最优子问题;
  • F(1)=1,F(2)=2F(1)=1, F(2)=2 是问题的边界;
  • F(n)=F(n−1)+F(n−2)F(n)=F(n-1)+F(n-2) 则是问题的状态转移公式;

1. 数列快速求和和矩阵快速乘法

1+2+⋯+n==(1+⋯+n2)+((n2+1)+⋯+(n2+n2))2⋅(1+⋯+n2)+n2⋅n2

\begin{split} 1+2+\cdots+n=&\left(1+\cdots+\frac n2\right)+ \left((\frac n2+1)+\cdots+(\frac n2+\frac n2)\right)\\ =&2\cdot\left(1+\cdots+\frac n2\right)+\frac n2\cdot \frac n2\\ \end{split}

也即:f(n)=2⋅f(n2)+n24f(n)=2\cdot f(\frac n2)+\frac{n^2}4 ⇒ 问题的规模以 n/2n/2 的缩小,时间复杂度从 O(n)O(n) 变为 O(logn)O(\log_n);

int fastSum(int n){if (n == 1) return 1;if (n % 2) return fastSum(n-1) + n;return 2*fastSum(n/2)+n/2*n/2;
}

分治法(divide conquer)与动态规划(dynamic programming)应用举例相关推荐

  1. 运筹学状态转移方程例子_动态规划 Dynamic Programming

    从运筹学和算法的角度综合介绍动态规划 规划论 Mathematical Programming / Mathematical Optimization In mathematics, computer ...

  2. 动态规划(Dynamic Programming)的一些事一些情

    References <算法导论> 最近在回顾算法的知识,特将一些动态规划的重点记录下来,好让以后自己不要忘记. 基本概念 动态规划(Dynamic Programming,简称为DP,下 ...

  3. 动态规划 dynamic programming

    动态规划dynamic programming June,7, 2015 作者:swanGooseMan 出处:http://www.cnblogs.com/swanGooseMan/p/455658 ...

  4. 分治法 divide and conquer

    分治算法包含以下步骤: 1.分(divide):将一个大问题分解成若干个子问题,每个子问题的问题规模n更小了,这样就有了好几个待解决的子问题. 2.治(conquer):递归的去解决每个子问题. 3. ...

  5. 分治法 Divide and Conquer思想及实际应用

    分治思想 Divide and Conquer,即为分治法,基于分支递归的一种解决问题的思想方法. 分治分治,"分而治之"的意思,就是把一个复杂的原问题分成一个或多个相同子问题,而 ...

  6. 动态规划(Dynamic Programming)与贪心算法(Greedy Algorithm)

    文章目录 动态规划算法(Dynamic Programming) 动态规划问题的属性 应用实例:最长公共子序列问题(Longest Common Subsequence, LCS) 贪心算法(Gree ...

  7. 算法导论-动态规划(dynamic programming)

    动态规划:通过组合子问题的解来解决整个问题. 动态规划的四个步骤: 1)描述最优解的结构: 2)递归定义最优解的值: 3)按自低向上的方式计算最优解的值(首先找到子问题的最优解,解决子问题,最后找到问 ...

  8. 动态规划|Dynamic Programming

    由于最近课设要用动态规划,翻阅资料学习一下. 动态规划 解决复杂问题的方法,把它们分解成更简单的子问题. 一旦我们看到一些例子,这个定义就有意义了.实际上,我们今天只看解问题的例子 解决DP问题的步骤 ...

  9. [欠驱动机器人]4,动态规划(Dynamic Programming)

    目录 前言 控制问题变成优化问题 新增成本(Additive cost) 图搜索的最优控制 连续动力学方程 HJB 方程 求出最小控制 数值求解J 方程逼近与数值迭代 线性方程逼近 网格上的值迭代 连 ...

  10. 关于简单动态规划(Dynamic Programming)的总结

    Instructions 综上所述(好像没有上)我的DP真的垃圾的一批... 动态规划是用来避免重复计算状态导致效率低的情况,实现动规有记忆化搜索和填表两种方法,但记忆化搜索不能优化空间,所以常用的是 ...

最新文章

  1. CentOS7下搭建yum仓库
  2. 时富金融:八年左右后内地房价会下降
  3. ARMv8 MMU及Linux页表映射:TLB
  4. 安装多个mysql及mysql服务
  5. 3、JSON相关基础知识点总结(3)
  6. hdu3076ssworld VS DDD 概率dp
  7. P1090 合并果子
  8. php 真太阳时间修正,真太阳时查询表(建议收藏)
  9. 嵌入式开发有年龄限制吗_32岁入门晚不晚?来听听这位70后程序员的故事
  10. 为什么 你会如此痛苦……?
  11. 示波器的带宽、带宽检定方法
  12. word里面的表格调整行高技巧
  13. 高德地图Key的获取过程(详细)
  14. 应对ME23数据抓取时ID发生变化 SAP
  15. 由光声前向模型求取光声信号
  16. RK3399 Android 7.1开发准备
  17. No JSON object could be decoded
  18. docker相关的文件配置
  19. 用PayPal在eBay上撸货加哪种卡可以长期用?
  20. COLA之架构演变(一)

热门文章

  1. 电脑运行内存不足怎么办_win7内存不足怎么办?教你使用虚拟内存来增加win7系统的运行内存...
  2. linux 设置更新源为cd,技术|如何修复 apt-get update 无法添加新的 CD-ROM 的错误
  3. 主节点数量_你知道电气主接线常见接线方式吗?建议收藏共同学习
  4. 为什么刹车热了会失灵_刹车油只要不缺,没必要更换,真的是这样吗?
  5. 配置多台机器SSH相互通信信任
  6. 锤子科技 php 面试,面试没通过 锤子新品遭面试者曝光
  7. 机器学习代码实战——线性回归(单变量)(Linear Regression)
  8. SQL Server 和 Oracle 的常用函数对比
  9. Tableau可视化学习笔记:day05-06
  10. EAST实现自然场景下文本检测tensorflow