Nowcoder 105G 又见斐波那契 (矩阵快速幂)

Posted 小坏蛋_千千

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nowcoder 105G 又见斐波那契 (矩阵快速幂)相关的知识,希望对你有一定的参考价值。

题目描述

这是一个加强版的斐波那契数列,给定递推式

F(i)=F(i1)+F(i2)+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 (1T1000) T   ( 1 ≤ T ≤ 1000 ) ,表示样例的个数。

以后每个样例一行,是一个整数 n (1n1018) n   ( 1 ≤ n ≤ 10 18 )

 

输出描述

每个样例输出一行,一个整数,表示 F(n) mod 1000000007 F ( n )   m o d   1000000007

 

输入

4
1
2
3
100

 

输出

1
16
57
558616258

 

思路

这道题的关键在于构造矩阵,然后运用快速幂求解即可。

FiFi1(i+1)3(i+1)2i+11110000100000101000103100103210101111×Fi1Fi2i3i2i1 [ F

以上是关于Nowcoder 105G 又见斐波那契 (矩阵快速幂)的主要内容,如果未能解决你的问题,请参考以下文章

Nowcoder 105G 又见斐波那契 (矩阵快速幂)

2018年湘潭大学程序设计竞赛 G-又见斐波那契

快速求斐波那契数列(矩阵乘法+快速幂)

[NowCoder]NC65 斐波那契数列

[洛谷1962]斐波那契数列

斐波那契矩阵快速幂模板斐波那契公约数