递推,递归与分治
递推
- 什么是递推
递推,就是从小的解开始,一步一步推到最优解的过程。
- 如何递推
这就要看具体情况,想出递推式,然后一步一步递推即可。
- 递推如何应用
讲这个之前,我们不妨先讲一讲递推如何具体实现。
第一步是先初始化。切记!
有两种表示方法:
- 数组递推法,如 f[i] = f[i-1]+f[i-2];
- 记忆化搜索,若冗余状态比较多则需要记忆化,否则直接调用即可。注意递归的结束,否则MLE或TLE后果自负。
那么,什么是冗余状态呢?
这是一个关于f(5)的解答树,可以看见,红色的都是被重复计算的,很多节点被重复计算了多次,若数比较大,重复计算的可不止这几个,而是一颗巨大的子树。
我们在计算时用数组记录已经算出的结果,就是记忆化搜索的核心思想。
来源:https://www.cnblogs.com/lhy-cblog/p/12306015.html