洛谷 P1962 斐波那契數列

2022-04-04 21:28:26 字數 971 閱讀 9548

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

1 0 的n-2次方

至於為什麼轉化為這個矩陣 點選就送傳奇寶箱

屠龍寶刀點選就送

#include #define mod 1000000007typedef 

long

long

ll;ll n;

struct

node

return

c; }

}base

,ans;

intmain()

base.a[1][1]=base.a[1][2]=base.a[2][1]=1

; ans.a[

1][1]=ans.a[1][2]=ans.a[2][1]=1

;

for(;n;n>>=1,base=base*base) if(n&1) ans=ans*base

; printf(

"%lld\n

",ans.a[1][1

]);

return0;

}

洛谷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 輸出樣例...

洛谷 P1962 斐波那契數列

f 1 1 f 2 1 f n f n 1 f n 2 n 2 且 n 為整數 請你求出 f n mod 1000000007 的值。矩陣快速冪 斐波那契數列通項公式為 f i f i 1 f i 2 相當於dp的轉移方程是一致的,那麼初始矩陣 0 1 不斷去乘上狀態轉移矩陣,即不斷進行矩陣運算,最...