【算法学习】中级班六

  1. 斐波拉契套路
    将斐波拉契这类通式问题优化到log(N)。
    每个通式都可以用矩阵乘法解决,如:
    在这里插入图片描述
    通过初始项可以求出abcd的值。然后得出通项式:
    在这里插入图片描述
    假设求某个数的n次方,如10的75次方:先考虑1,2,4,8,16…中哪些位置加起来可以凑成75,得到64+8+2+1。
    初始t=10,每次计算10的t次方,然后t=t*t。res= r e s ∗ 1 0 t res *10^{t} res10t, (t=1,2,8,64)
    在这里插入图片描述
    同理快速求矩阵的n次方,res初始是单位矩阵:
    在这里插入图片描述
    代码:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
事实上就是斐波那契数列,设F(i)表示长度为i时的达标字符串数,由定义知道,i位置的数字只能是1,则F(i) = F(i-1)+F(i-2)
3.
在这里插入图片描述
即求木棍中斐波那契数有哪些,就是可以保留的木棍。
解释:组成三角形要求x+y<=z,即最大的边长度大于等于其他两条边,对于任意i位置,只要i-2和i-1位置相加不大于i位置,则前面也肯定不大于,因此只要使f(i)=f(i-1)+f(i-2)
在这里插入图片描述
4.
在这里插入图片描述
有序表:先按难度由小到大排,难度一样按照报酬由大到小。
删除:

  • 保留难度一样,报酬最多的。
  • 难度增加,报酬一样的删除

在这里插入图片描述
在这里插入图片描述
5.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
判断越界:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值