Kyopro Library
 
読み取り中…
検索中…
一致する文字列を見つけられません
matrix.hpp
[詳解]
1#include"../../kyopro_library/template.hpp"
2
3template<typename T>
4vector<vector<T>> MatMul(const vector<vector<T>>& A, const vector<vector<T>>& B) {
5 int N=A.size();
6 vector<vector<T>> ret(N,vector<T>(N));
7 for(int i=0; i<N; i++) for(int j=0; j<N; j++) for(int k=0; k<N; k++) {
8 ret[i][j]+=A[i][k]*B[k][j];
9 }
10 return ret;
11}
12
13template<typename T>
14vector<vector<T>> MatPow(vector<vector<T>> A, ll b) {
15 int N=A.size();
16 vector<vector<T>> ret(N,vector<T>(N));
17 for(int i=0; i<N; i++) ret[i][i]=1;
18 while(b) {
19 if(b&1) ret=MatMul(ret,A);
20 A=MatMul(A,A);
21 b>>=1;
22 }
23 return ret;
24}
vector< vector< T > > MatMul(const vector< vector< T > > &A, const vector< vector< T > > &B)
Definition matrix.hpp:4
vector< vector< T > > MatPow(vector< vector< T > > A, ll b)
Definition matrix.hpp:14