洛谷1962 斐波那契數列

2022-05-22 01:42:12 字數 543 閱讀 5247

思路:

常見演算法時矩陣快速冪,但事實上這題可以不需要矩陣快速冪。

設斐波那契數列為$f$,觀察規律可以發現:

當$n$為偶數時,$f_n=(f_\times 2+f_n)\times f_n$;

當$m$為奇數時,$f_n=f_^2+f_n^2$。

這樣只要用乙個map記錄已經計算過的fibonacci數,遞迴求得答案即可。

再用乙個hash_map跑得和標算一樣快(0ms),而且記憶體更小。

1 #include2 #include3

const

long

long mod=1000000007

;4 __gnu_cxx::hash_mapm;

5 inline long

long sqr(const

long

long

x) 8

long

long fibonacci(const

long

long

n) 14

intmain()

洛谷1962 斐波那契數列

f 1 1 f 2 1 f n f n 1 f n 2 n 2 且 n 為整數 請你求出 f n mod 1000000007 的值。第 1 行 乙個整數 n 第 1 行 f n mod 1000000007 的值 輸入樣例 1 輸出樣例 1 輸入樣例 2 輸出樣例 2 對於 60 的資料 n 92...

洛谷P1962 斐波那契數列

f 1 1 f 2 1 f n f n 1 f n 2 n 2 且 n 為整數 請你求出 f n mod 1000000007 的值。輸入格式 第 1 行 乙個整數 n 輸出格式 第 1 行 f n mod 1000000007 的值 輸入樣例 1 5 輸出樣例 1 5 輸入樣例 2 10 輸出樣例...

洛谷P1962 斐波那契數列

f 1 1 f 2 1 f n f n 1 f n 2 n 2 且 n 為整數 請你求出 f n mod 1000000007 的值。輸入格式 第 1 行 乙個整數 n 輸出格式 第 1 行 f n mod 1000000007 的值 輸入樣例 1 5 輸出樣例 1 5 輸入樣例 2 10 輸出樣例...