矩陣快速冪。人生第一次真正意義上寫的矩陣快速冪題目啊!題意:fibonacci數列的第0項為0,第1項為1,第2項也為1,此後第n項等於第n-1項與第n-2項的和。現在給你n,請你輸出這個fibonacci數列第n項的值的後4位數字(即對10000取模的結果)。
我的解題思路:標準矩陣快速冪,首先可以構造乙個1×2的初值矩陣[ f(0) f(1) ],然後可以構造這樣乙個2×2的係數矩陣[ 0 1 1 1 ],這樣的話初值矩陣×係數矩陣就得到了這麼乙個1×2的矩陣[ f(1) f(2) ],因此只要把初值矩陣×係數矩陣的n次方就得到了這樣乙個1×2的矩陣[ f(n) f(n+1) ]。這個係數矩陣進行冪運算,那就是矩陣快速冪了。
我的解題**:
#include #include #include #include #include #include using namespace std;
const int matn = 2;
const int mod = 10000;
struct matrix //矩陣結構體
matrix(int _n, int _m): n(_n), m(_m)
void unit(int unit) //將矩陣轉換為單位矩陣
return ans;
}
矩陣十題 六 poj3070 Fibonacci
id 3070 題目大意 給定n和10000,求第n個fibonacci數mod 10000 的值,n不超過2 31。結果保留四位數字。非常easy的題,和之前做過的相比簡單非常多了。構造最簡單的斐波那契數列矩陣。include include includeusing namespace std ...
矩陣十題 六 poj3070 Fibonacci
id 3070 題目大意 給定n和10000,求第n個fibonacci數mod 10000 的值,n不超過2 31。結果保留四位數字。非常easy的題,和之前做過的相比簡單非常多了。構造最簡單的斐波那契數列矩陣。include include includeusing namespace std ...
POJ 3070 Fibonacci(矩陣快速冪)
description 已知 求fn mod 10000 input 多組輸入,每組用例佔一行為一整數n,以n 1結束輸入 output 對於每組用例,輸出fn mod 10000 sample input 0 9 999999999 1000000000 1sample output 0 34 6...