矩阵快速幂模板
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; } }
每一个不曾刷题的日子
都是对生命的辜负
从弱小到强大,需要一段时间的沉淀,就是现在了
~buerdepepeqi