luogu 1962 斐波那契數列

2022-05-10 04:06:08 字數 783 閱讀 4570

• 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...