洛谷 P1962 斐波那契數列

2022-03-03 07:31:06 字數 643 閱讀 1700

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