矩阵快速幂模板
Posted buerdepepeqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了矩阵快速幂模板相关的知识,希望对你有一定的参考价值。
const int maxn = 105; struct Matrix { int m[maxn][maxn]; }ans,res; /**矩阵乘法**/ Matrix mul(Matrix a,Matrix b,int n){ Matrix tmp; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ tmp.m[i][j]=0; } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ for(int k=1;k<=n;k++){ tmp.m[i][j]+=A.m[i][k]*B.m[k][j]; } } } return tmp; } /**快速幂**/ void quickpow(int N,int n){ for(int i=1;i<=n;n++){ for(int j=1;j<=n;j++){ if(i==j) ans.m[i][j]=1; else ans.m[i][j]=0; } } while(N){ if(N&1){ ans=mul(ans,res); } res=mul(res,res); N=N>>1; } }
以上是关于矩阵快速幂模板的主要内容,如果未能解决你的问题,请参考以下文章