void mul(matrix a,matrix b,matrix c){
matrix d={{0}};
int i,j,l;
for(i=0;i<=k;i++)
for(j=0;j<=k;j++)
for(l=0;l<=k;l++)
d[i][j]=(d[i][j]+a[i][l]*b[l][j])%p;
memcpy(c,d,sizeof d);
}
void quick_pow(matrix a,LL b,matrix c){
matrix d={{0}},t;
for(int i=0;i<=k;i++)
d[i][i]=1;
memcpy(t,a,sizeof t);
while(b){
if(b&1)
mul(d,t,d);
mul(t,t,t);
b>>=1;
}
memcpy(c,d,sizeof d);
}
矩阵快速幂模板
最新推荐文章于 2022-08-27 21:03:02 发布