一、递推算法思想
当某个问题可以分成若干个子问题,换言之用多个子问题可以求出当前问题的解(求解该问题可分成若干步),此时找到当前问题与子问题的关系,从而转化为根据已知条件(子问题的解)求未知问题的一种快速解法。
分解原问题的几种常见思路:
1.第i步/项和第i-1步/项
2.前i步/项和前i-1步/项
3.当前位置和上一个位置
4.当前状态与上一个状态
递推问题可以根据实际情况找到分解问题的策略。(这一步最难)
随后研究原问题和子问题之间的关系,如果存在规律的关系,那就可以写出递推式,最后完善边界条件,进行递推即可。
递推算法找关系式技巧:
1.通常可以转化为序列上的问题,画出表格,逐项递推。可以使用excel辅助推导。
2.有些时候题目看起来很难,暴力写法要超时,可以输出结果,从结果观察规律判断各项答案是否
能够构成规律的数列。
3.递推一般方案数比较大,一般都会要求取模。在答题时需要仔细查看是否超过数据范围,一般可以输出每项的答案进行观察。