解题关键:模板题,方便以后熟悉
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct mat{
ll m[][];
};
ll mod=1e9+;
int n,t;
mat mul(mat &A,mat &B){
mat C={};
for(int i=;i<n;i++){
for(int j=;j<n;j++){
for(int k=;k<n;k++){
C.m[i][j]=(C.m[i][j]+A.m[i][k]*B.m[k][j]+mod)%mod;
}
}
}
return C;
}
mat pow(mat A){
mat B={};
for(int i=;i<n;i++){
B.m[i][i]=;
}
while(t){
if(t&) B=mul(B,A);
A=mul(A,A);
t>>=;
}
return B;
}
int main(){
cin>>n>>t;
mat A={};
for(int i=;i<n;i++){
for(int j=;j<n;j++){
cin>>A.m[i][j];
}
}
A=pow(A);
for(int i=;i<n;i++){
for(int j=;j<n;j++){
cout<<A.m[i][j]<<' ';
}
cout<<endl;
}
}