文章目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <bits/stdc++.h>
#define N 10
using namespace std;
struct matrix{
int x[N][N];
void clear(){
memset(x,0,sizeof(x));
}
}tmp,ppp,a,b,c;
int k,mm;
void mul(matrix& a,int ab,matrix& b,int bb,int tmpb,int MOD){//矩阵乘法
tmp.clear();
for(int i=0;i<ab;i++){
for(int j=0;j<bb;j++){
for(int k=0;k<tmpb;k++){
tmp.x[i][j]=(tmp.x[i][j]+a.x[i][k]*b.x[k][j])%MOD;
}
}
}
}
void power(matrix& a,int n,int MOD){//快速幂
ppp.clear();
for(int i=0;i<N;i++){
ppp.x[i][i]=1;
}
while(n>0){
if((n&1)==1){
mul(ppp,k,a,k,k,mm);
ppp=tmp;
}
mul(a,k,a,k,k,mm);
a=tmp;
n>>=1;
}
}
int main()
{

return 0;
}
文章目录