Nowcoder 105G 又见斐波那契 (矩阵快速幂)
Posted 小坏蛋_千千
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nowcoder 105G 又见斐波那契 (矩阵快速幂)相关的知识,希望对你有一定的参考价值。
题目描述
这是一个加强版的斐波那契数列,给定递推式
F(i)=⎧⎩⎨F(i−1)+F(i−2)+i3+i2+i+101i>1i=0i=1 F ( i ) = F ( i − 1 ) + F ( i − 2 ) + i 3 + i 2 + i + 1 i > 1 0 i = 0 1 i = 1
求 F(n) F ( n ) 的值,由于这个值可能太大,请对 109+7 10 9 + 7 取模。
输入描述
第一行是一个整数 T (1≤T≤1000) T ( 1 ≤ T ≤ 1000 ) ,表示样例的个数。
以后每个样例一行,是一个整数 n (1≤n≤1018) n ( 1 ≤ n ≤ 10 18 ) 。
输出描述
每个样例输出一行,一个整数,表示 F(n) mod 1000000007 F ( n ) m o d 1000000007 。
输入
4
1
2
3
100
输出
1
16
57
558616258
思路
这道题的关键在于构造矩阵,然后运用快速幂求解即可。
⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢FiFi−1(i+1)3(i+1)2i+11⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⟸⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢110000100000101000103100103210101111⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥×⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢Fi−1Fi−2i3i2i1⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥ [ F
以上是关于Nowcoder 105G 又见斐波那契 (矩阵快速幂)的主要内容,如果未能解决你的问题,请参考以下文章