codeforces E. Product Oriented Recurrence (乘法的矩阵快速幂+欧拉降幂)

本文介绍了如何使用矩阵快速幂和欧拉降幂解决codeforces上的一道题目,该题目涉及乘法的递归公式。通过矩阵快速幂计算f1, f2, f3的幂次,并结合c的幂次,利用递推关系求解fn模(10^9 + 7)。同时解释了如何处理线性项并应用欧拉定理的推论进行取模运算。" 121493482,1264183,使用div+css+js实现深圳交互地图,"['前端', 'UI', 'CSS3']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次做到了cf上面的一道题目,解法很新颖,自己不会后面也给补了 现在来记录一下  

矩阵快速幂的话就保留和我当前项有关的前几项就好了 是变量的也需要保留下来 然后自己退出矩阵的式子为什么

Let f x =c 2x−6 ⋅f x−1 ⋅f x−2 ⋅f x−3  fx=c2x−6⋅fx−1⋅fx−2⋅fx−3 for x≥4 x≥4 .

You have given integers n n , f 1  f1 , f 2  f2 , f 3  f3 , and c c . Find f n mod(10 9 +7) fnmod(109+7) .

Input

The only line contains five integers n n , f 1  f1 , f 2  f2 , f 3  f3 , and c c (4≤n≤10 18  4≤n≤1018 , 1≤f 1  1≤f1 , f 2  f2 , f 3  f3 , c≤10 9  c≤109 ).

给如上面的式子 让你求第n项 其实我们一开始发现这个式子不是像之前的那种直接就是矩阵快速幂的板子题目 这个是连乘的 那么这个该怎么解决呢

我们可以利用矩阵快速幂求出f1 , f2 ,f3 的幂次 还要 c 的幂次 然后利用寻常快速幂就可以直接求解这个问题了 这里求幂次就是把乘法完美的化解乘加法 然后矩阵快速幂求解幂次  每次和前三项有关 我们每次保留三项就好了

这f[n] = {fn,fn - 1,fn&n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值