各位大佬,行行好,调调吧,改了一个周啦
#include<bits/stdc++.h>
using namespace std;
const long long N=(long long)1e9+7;
long long n,m;
long long a[101][101];
long long ans[101][101];
void blabla(){
for(long long i=1;i<=n;i++)
for(long long j=1;j<=n;j++)
for(long long k=1;k<=n;k++){
ans[i][j]+=a[i][k]*a[k][j];
ans[i][j]%=N;
}
}
void QP(){
while(m){
if(m&1){
blabla();
for(long long i=1;i<=n;i++){
for(long long j=1;j<=n;j++){
ans[i][j]%=N;
}
}
}
m>>1;
blabla();
}
return ;
}
int main(){
cin>>n>>m;
for(long long i=1;i<=n;i++)
for(long long j=1;j<=n;j++)
cin>>a[i][j];
QP();
if(m==0)
for(long long i=1;i<=n;i++)
for(long long j=1;j<=n;j++)
if(i==j)ans[i][j]=1;
for(long long i=1;i<=n;i++){
for(long long j=1;j<=n;j++)
cout<<ans[i][j]<<' ';
cout<<endl;
}
return 0;
}