本文主要是介绍JD 1474:矩阵幂,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
OJ题目:click here~~
题目分析:经典题目,矩阵快速幂。
typedef vector<int> vec ;
typedef vector<vec> mat ;
int n ;
mat mul(mat &A , mat &B){mat C(n , vec(n)) ;for(int i = 0;i < n;i++)for(int j = 0;j < n;j++)for(int k = 0;k < n;k++)C[i][j] += A[i][k] * B[k][j] ;return C ;
}mat pow(mat A , int k){mat B(n , vec(n)) ;for(int i = 0;i < n;i++)B[i][i] = 1 ;while(k > 0){if(k&1) B = mul(B , A) ;A = mul(A , A) ;k >>= 1 ;}return B ;
}int main(){int k , T ;cin >> T ;while(T--){scanf("%d%d",&n,&k) ;mat A(n , vec(n)) ;for(int i = 0;i < n;i++)for(int j = 0 ;j < n;j++){scanf("%d",&A[i][j]) ;}A = pow(A, k) ;for(int i = 0;i < n;i++)for(int j = 0;j < n;j++){j == n-1 ? printf("%d\n",A[i][j]) : printf("%d ",A[i][j]) ;}}
}
这篇关于JD 1474:矩阵幂的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!