• 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
輸出樣例#2:
55
對於 60% 的資料: n ≤ 92
對於 100% 的資料: n在long long(int64)範圍內。
1 #include2 #include3 #include4 #include5#define ll long long
6using
namespace
std;
7const ll mod=1000000007;8
ll n;
9struct matrixa;
10matrix multiply(matrix a,matrix b)
18return
t;19}20
matrix fast(matrix a,ll p)
27return
ans;28}
29int
main()
LUOGU P1962 斐波那契數列
求斐波那契第n項。f n 1 f n 0,1 f n f n 1 1,1 由此原理,根據矩陣乘法的結合律,用快速冪算出中間那個矩陣的n次方即可。快速冪本質和普通快速冪一模一樣,只是乘法操作換成了矩陣的乘法,可以過載。stay foolish,stay hungry,stay young,stay i...
Luogu P1962 斐波那契數列
大家都知道,斐波那契數列是滿足如下性質的乙個數列 f 1 1 f 2 1 f n f n 1 f n 2 n 2 且 n 為整數 求出 f n mod 1000000007 的值。對於 60 的資料 n 92 對於 100 的資料 n在long long int64 範圍內。一道矩陣乘法的模版題.某...
P1962 斐波那契數列
fn表示數列的第n項 那麼我們如果把fn,fn 1寫成蒟陣的形式,可以按照如下推導過程對這個蒟陣進行拆分,從而寫成便於計算的形式 如圖,這個是可以寫成蒟陣 和相乘的形式的,而 這個蒟陣可以用蒟陣快速冪來計算,具體可以見我的部落格 下面是 include include include include...