4.17学习总结

这周学习了递归和搜索。
一开始感觉挺简单的,但是坐起题来却发现并没有那么简单,还是要有一定的思维的。
有的题我分不清dfs还是bfs,有时候就不用递归直接就写了。
有的时候写的杂乱无章,自己都分不清哪是哪了,刚开始学还是要多看资料,多看题,还是感觉搜索不是很难,可能有了一定的题量之后做题就顺手了。
在课外我还学习了一点数论知识,也是有的看不懂,浅显一点的可以看懂,比较有印象的是素数筛选法和一个循环节,感觉循环节挺好。
【例】f[1] = a, f[2] = b, f[3] = c, 当n>3时 f[n] = (Af[n-1] + Bf[n-2] + Cf[n-3]) % 53,给定a, b, c, A, B, C,求f[n] (n < 2^31)。 由于n非常大,循环模拟求解肯定是不现实的,仔细观察可以发现当n>3时,f[n]的值域为[0, 53),并且连续三个数f[n-1]、f[n-2]、f[n-3]一旦确定,那么f[n]也就确定了,而f[n-1]、f[n-2]、f[n-3]这三个数的组合数为535353种情况,那么对于一个下标k<n,假设f[k]已经求出,并且满足f[k-1] == f[n-1] 且 f[k-2] == f[n-2]且f[k-3] == f[n-3],  则f[n]必定等于f[k],这里的f[k…n-1]就被称为这个数列的循环节。并且在5353*53次计算之内必定能够找到循环节,这个是显而易见的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轩辕青山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值