初赛——递推式
随着开学,学习的效率逐渐减小
这几天的总体情况还算不错,我过得比原来清晰了,比原来自信了,比原来阳光了,加油啊,初赛,一定要把曾经失去的找回来啊
好了,快开始切入正题
递推公式,也就是dp中的状态转移方程这种东西难的变态,会层层递推,不是人脑能计算的,要想攻破,必须学会推递推式
学会递推式,必须从两个主题切入
什么是递推式,怎么推递推式,是什么
递推式是什么
递推式,前一项或几项的关系可以用一个式子来表示,那么这个公式叫做这个数列的递推公式
当然,这个是度娘的解释,几项的关系就是我们需要寻找的,非常的难,例如斐波纳契数列的递推公式为an=an-1+an-2
每一项都与前面若干项有一定关联,涉及到重复简单的运算来描述问题
说白了,就是规律
递推式怎么推
当我们处在第i个方案的时候,我们需要假设0~i-1都是已知的
主要的方式就是将第i个元素加起来,去考虑影响是什么
当然这是非常正确的方法
正确的方法怎么会让我们使用呢🤪
我们可以用数学中的找规律的方法来解决这个问题,用笔来演算,计算小的数据范围,然后猜猜递推式
有了这个找规律的方法,妈妈不用担心我的学习了
在总结一下
1.首先我们用f[n]来表示我们要求的东西,就是方程中的未知数
2.第n项与1~n-1项的哪一项又怎么样的关系,譬如F[n]=F[n-1]+F[n-3]*2就是Fn由第n-1项和第n-3项得出的
3.设立初始值,类似于边界值,比如F[1]=1,F[2]=1
csp2020j T18
这一道题,让我到现在还是有些懵逼
当然了,我们在下面是可以看出来有回溯的,实际上我们运用不到回溯,只需要理解递归之前的部分
if (n == 1) //边界值
{
ans = max(sum