标签:
const ll MOD=1e9+7; typedef long long ll; const int MAXN=2 //矩阵阶数 struct Matrix{ ll m[MAXN][MAXN]; Matrix() { memset(m,0,sizeof(m)); for(int i=0;i<MAXN;i++) m[i][i]=1; } } Matirx mtMul(Matrix A,Matrix B) { int i,j,k,tmp; Matrix C; for(int i=0;i<MAXN;i++) for(int j=0;j<MAXN;j++) for(int k=0;k<MAXN;k++) C.m[i][j]=((A.m[i][k]%MOD)*(B.m[k][j]%MOD))%MOD; return C; } Matrix mtPow(Matrix A,int k) { if(k==1) return A; Matrix B=mtPow(A,k/2); if(k%2==0) return mtMul(B,B); else return mtMul(mtMul(B,B),A); }
标签:
原文地址:http://www.cnblogs.com/onlyAzha/p/4760921.html