• 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$
不斷去乘上狀態轉移矩陣,即不斷進行矩陣運算,最終得到目標矩陣
如何去求狀態轉移矩陣呢?
當然是根據狀態轉移方程來列。
$0 1$
$1 1$
#include#include#include
#define n 1005
#define ll long long
#define mod 1000000007
using
namespace
std;
struct
martixt a,b,c;
ll n;
void
mul_1()
void
mul_2()
void
matrix_pow()
intmain()
洛谷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 的值。輸入格式 第 1 行 乙個整數 n 輸出格式 第 1 行 f n mod 1000000007 的值 輸入樣例 1 5 輸出樣例 1 5 輸入樣例 2 10 輸出樣例...