Kyopro Library
読み取り中…
検索中…
一致する文字列を見つけられません
matrix.hpp
[詳解]
1
#
include
"../../kyopro_library/template.hpp"
2
3
template
<
typename
T>
4
vector
<
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
13
template
<
typename
T>
14
vector
<
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
}
MatMul
vector< vector< T > > MatMul(const vector< vector< T > > &A, const vector< vector< T > > &B)
Definition
matrix.hpp:4
MatPow
vector< vector< T > > MatPow(vector< vector< T > > A, ll b)
Definition
matrix.hpp:14
math
matrix.hpp
構築:
1.13.2