模版 矩陣快速冪

2021-08-18 16:37:01 字數 1276 閱讀 8134

矩陣快速冪就是快速冪的矩陣用法

ll fast_power(ll fp_a , ll fp_n , ll fp_p) 

return ret;

}

得到遞推公式後推出轉移矩陣然後就套模版啦

#include 

#include

#define mod 1000000009

#define ll long long

using

namespace

std;

struct matrix ;

matrix unit_matrix = ; //單位矩陣

matrix mul(matrix a, matrix b)

}return res;

}matrix pow_matrix(matrix a, ll n)

return res;

}int main()

matrix tmp = , ans, x = ;

ans = pow_matrix(tmp, n - 2);

ans = mul(x, ans);

cout

<< " ";

cout

<< ans.mat[0][1] << endl;

}return

0;}

以下是加強版嘻嘻嘻

#include 

#include

#define mod 1000000009

#define ll long long

using

namespace

std;

struct matrix ;

matrix unit_matrix = ; //單位矩陣

matrix mul(matrix a, matrix b, int x, int y, int z)

}return res;

}matrix pow_matrix(matrix a, ll n, int x)

return res;

}int main()

matrix tmp = , ans, x = ;

ans = pow_matrix(tmp, n - 2, 2);

ans = mul(x, ans, 1, 2, 2);

cout

<< ans.mat[0][1] << endl;

}return

0;}

模版 快速冪 矩陣快速冪

原理 x yx y xy中的 y yy 轉化成二進位制數,然後每乙個 1 11 對應 x xx 的 i ii 次方 這樣把x yx y xy轉化成了x yx y xy x ax a xa x bx b xb x cx c xc 通過對 x xx 不斷翻倍的過程,來匹配y轉成二進位制的 111。如果為...

矩陣快速冪模版

const int n 10 int tmp n n void multi int a n int b n int n 上訴res陣列就等同於普通快速冪初始化的1,原理想通的,這個矩陣叫單位矩陣e,性質就是e a a,就是1 a a,一樣,單位矩陣就是對角線全是1其他全是0 最終算出的結果是乙個re...

矩陣快速冪的總結以及模版

jun 碰到了挺多數列的題,線性遞推,值又很大,直接推會超時,所以去網上找題解的時候,找到了矩陣快速冪以及杜教板子,杜教板子還沒看懂,就以後再發 首先,快速冪,之前也學了整數的快速冪,複雜度是o log 2n 這裡就把模版貼一下 int poww int a,int b return ans 然後對...