算法基础笔记

时间:2020-02-01 10:36:20   收藏:0   阅读:69

枚举

# 递归

附注

  1. atof()函数,将浮点串转变为浮点数
  2. cin.peek()函数,提前预知输入而非读取
  3. 浮点数的比较引入eps

分治

附注

  1. " x & 1 " 表达式判别x奇偶性
  2. 快速幂算法

动态规划

动规中递归法向递推法转化的一般方法:

  • 递归函数有n个参数,就定义一个n维的数组,数组 的下标是递归函数参数的取值范围,数组元素的值 是递归函数的返回值,这样就可以从边界值开始, 逐步填充数组,相当于计算递归函数值的逆过程。

常见分解(状态转移)方法归纳

  • 多分类讨论, 想想解决原问题等同于解决什么和什么。有时候要经过多层分解才能够得到与原问题结构相同的子问题。
  • “n=(n-1)+1”型与"n=1+(n-1)"型(与 递归先走一步 思想又异曲同工之妙,n为问题规模)
  • "F(i,j,k)=F(i-1,j,k)+F(i,j-1,k)+F(i,j,k-1)"型(这里拿 三维 的情况举例,其他维度的状态转移方程与此大同小异)
  • "F(m,n)=A, A=G( F(m-1,n),F(m,n-1) )"型,间接递归

附注

  1. 数字三角形题目启示录:
    空间优化滚动数组(通过覆盖今后无用的旧有数据空间的方法来压缩空间),降维,关注不必要的存储空间以及运行过程中变得可以丢弃的数据。②递归化递推:逆向思维。

原文:https://www.cnblogs.com/BAIDI-HOME/p/12247623.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!