题目描述
样例
#include "bits/stdc++.h"
using namespace std;
struct matrix
{
int n,m;
int a[10][10] = {0};
matrix operator * (const matrix o) const
{
matrix res = {n,o.m};
for(int i=0;i<n;i++)
{
for(int j=0;j<o.m;j++)
{
for(int k=0;k<m;k++) res.a[i][j] += a[i][k] * o.a[k][j];
}
}
return res;
}
};
matrix pw(matrix a,int k)
{
matrix res = a;
k--;
while(k)
{
if(k&1) res = res * a;
a = a*a;
k>>=1;
}
return res;
}
int main()
{
ios::sync_with_stdio(0),cin.tie(),cout.tie(0);
int n,k;cin>>n>>k;
matrix m1 = {n,n};
for(int i=0;i<n;i++) for(int j=0;j<n;j++) cin>>m1.a[i][j];
matrix ans = pw(m1,k);
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++) cout<<ans.a[i][j]<<(j==n-1 ? '\n' : ' ');
}
return 0;
}
```