递归基本上是后面的所有的内容的基础,只能学会了递归,我们才能理解,后面的内容
- 搜索
- 暴力枚举
- 动态规划
在本章,你需要学会
-
递归的一般写法(模板)
void dfs(int n) { if( n 到达边界) { 操作 return; } for(int i=1;i<=x;i++)//分步任务 dfs(n+1); } -
最简单的树的概念
-
每个递归都可以表示成一棵树
-
递归就是在树上的行走
-
分解子问题
-
递归的前进与回溯
-
恢复现场
-
用数学语言来描述递归(高中数学函数)
那些例子
- 著名的上帝的指纹
和后面dp连接起来
基本概念
- 前进:
- 回溯
- 状态
- 恢复现场
集合的思想来思考题目
如何做 对集合进行分类
下载集合课件 ,题目,数学书电子版
画图 得到树
主要思考方法
从底向上
小朋友任务思考法(回溯法)
可以告诉左右小朋友如何做
从顶向下
集合分类,分解子问题,函数表示,大佬小朋友法
总结 :
我们在现实中发现 任何事物 它的整体 与局部是相似的
你可以举出很多的例子
宇宙与原子
组织形式
甚至人自己本身
这个在数学上有很多叫法
分形
简单分成这几类问题
- 计数
- 最值
- 存在性
如何发现与描述(使用符号)这种局部与整体关系,贯穿我们整个学习的过程
经典题目 :
- 入门
- 递归计算1到n的和
- 递归加回溯输出1到n,再输出n到1
- Fibonacci 数列
- Tower of Hanoi
- 简单的排列与组合
- 排列型
- 组合型
- 指数型
- 复杂的一些问题
- 数的分解