Submit | All submissions | Best solutions | Back to list |
FLIB - Flibonakki |
G(n) is defined as
G(n) = G(n-1) + f(4n-1) , for n > 0
and G(0) = 0
f(i) is ith Fibonacci number. Given n you need to evaluate G(n) modulo 1000000007.
Input
First line contains number of test cases t (t < 40000). Each of the next t lines contain an integer n (0 <= n < 2^51).
Output
For each test case print G(n) modulo 1000000007.
Example
Input: 2 2 4 Output: 15 714
Added by: | Prof_Utonium_ಉಮೆಶ್ |
Date: | 2010-10-05 |
Time limit: | 1s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 JS-RHINO OBJC SQLITE |
Resource: | MNNIT IOPC 2010 |
hide comments
|
|||||||
2024-10-31 22:39:25
Operator overloading works as well, if you are getting TLE just make sure you have taken the input n as long long and not int. |
|||||||
2023-03-07 11:50:57
After multiple optimisations, my 3*3 matrix passed. Don't overuse mod and don't use operator overloading or identity matrix creation in matrix exponentiation. Finally AC in 10!!!! |
|||||||
2020-08-31 20:31:01
I assumed 1st fibonacci number to be 1 not 0 !!! |
|||||||
2017-09-11 14:33:45
Application of Matrix Exponentiation!! AC in one GO!! |
|||||||
2017-06-23 19:41:31
3x3 works if you reduce the MOD operations and don't overload the * operation to multiply matrices (or create a separate function to do the same). Dirty Optimisations. xP Last edit: 2017-06-23 19:43:52 |
|||||||
2017-04-29 20:14:59 candide
G(n) depends on two consecutive Fibonacci numbers, so you only need to fast-power a 2x2 integer matrix (fast-power = square-and-multiply algorithm). In C, this can get AC in 0.02s without any trick (2017/05). To do a better result, perform precomputation (little tricky). Same advice in order to get AC in Python. Congrat to Francky for his Python performance! |
|||||||
2016-09-15 07:23:31
used 3x3 matrix with some precomputation, AC 0.10 s |
|||||||
2016-04-12 19:09:43 farhad chowdhury
can anyone plz share the idea how it can be solved with a 2*2 matrix. i know with 3*3 matrix but tons of tle also did a lot optimization |
|||||||
2015-07-24 11:21:46 Tahsin
3*3 matrix passed , but without overloading * operator :/ with overloading i got TLE :| time limit is so strict ! |
|||||||
2015-03-04 13:41:34 #include
2 WAs because of int in place of long long int |