• 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)範圍內。
#include#include#include
#include
using
namespace
std;
typedef
long
long
ll;const ll mod=1e9+7
;ll n;
struct
matx,y;
inline mat matmul(mat a,mat b,
intlen)
return
res;
}mat matpow(mat a,ll p)
intmain()
x.m[
1][1]=x.m[1][2]=x.m[2][1]=1
; y.m[
1][1]=y.m[2][1]=1
; x=matpow(x,n-2
); y=matmul(x,y,2
); printf(
"%lld\n
",y.m[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 的值。矩陣快速冪 斐波那契數列通項公式為 f i f i 1 f i 2 相當於dp的轉移方程是一致的,那麼初始矩陣 0 1 不斷去乘上狀態轉移矩陣,即不斷進行矩陣運算,最...
洛谷 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 輸出樣例...