Fibonacci(矩陣快速冪)

2021-09-25 19:19:07 字數 866 閱讀 2265

菲波那契數列是指這樣的數列: 數列的第乙個是0和第二個數是1,接下來每個數都等於前面2個數之和。 給出乙個正整數a,要求菲波那契數列中第a個數的後四位是多少。

input

多組資料 -1結束 範圍1~10^9

output

第x項的後4位

sample input09

999999999

1000000000

-1sample output034

6266875

| f(2) 1 | * | 1 1 | = | f(3) 1 |

| f(1) 0 | * | 1 0 | = | f(2) 0 |

| 1 1 | 的n次方 = | f(n) 1 |

| 1 0 | 的n次方 = | f(n-1) 0 |

ac**:

#include

#include

#include

using

namespace std;

int mod=

10000

;struct node

;node mul

(node a,node b)}}

return ans;

}node ksm

(node a,

long

long

int b)

while

(b) b>>=1;

a=mul(a,a);}

return res;

}int

main()

else

if(n==1)

else

}return0;

}

Fibonacci 矩陣快速冪

請輸出 fib n mod 10000 n leq 1000000000 由於 n 的範圍在 1e9 直接遞推鐵tle,考慮矩陣快速冪 fibonacci數列有如下性質 通過多次迭代 算是個板子題吧,記得在wust新生賽做過一道想矩陣快速冪的題,然而正解是找規律qaq,在此貼個板子。include ...

fibonacci數列矩陣快速冪

對於矩陣 1 1 1 0 的n次冪,第一行第二個元素 右上角 的元素即為fibonacci數列的第n項,由此可以根據矩陣的乘法計算fibonacci數列的元素值 矩陣的快速冪利用的也是冪乘的二分法,只不是換成了矩陣的乘法,可以用函式處理。可以定義乙個二維陣列的結構體 typedef struct m...

Fibonacci數列(矩陣乘法快速冪)

題目描述 定義 f0 f1 1,fn fn 1 fn 2 n 2 稱為fibonacci數列。輸入n,求fn mod q。其中1 q 30000。輸入描述 第一行乙個數t 1 t 10000 以下t行,每行兩個數,n,q n 109,1 q 30000 輸出描述 檔案包含t行,每行對應乙個答案。樣例...