矩阵乘法:
matrix multi( matrix a,matrix b )//矩阵乘法 { matrix temp; for(int i=0;i<n;i++)//n阶矩阵 { for(int j=0;j<n;j++) { temp.m[i][j]=0; for(int k=0;k<n;k++) temp.m[i][j]=(temp.m[i][j]+a.m[i][k]*b.m[k][j])%9973; } } return temp; }
矩阵快速幂:
matrix fast(matrix a, int k)//矩阵a的k次幂 { for(int i=0;i<n;i++) for(int j=0;j<n;j++) { if(i==j)ans.m[i][j]=1; else ans.m[i][j]=0; } while(k) { if(k&1) { ans=multi(ans,a); } a=multi(a,a); k>>=1; } return ans; }