题意
附上代码
#include <iostream>
#include <cmath>
#include <algorithm>
#define N 10
using namespace std;
struct matrix
{
int f[N][N];
};
matrix mul(matrix a,matrix b)
{
matrix c;
memset(c.f,0,sizeof(c));
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
for(int k=0;k<N;k++)
{
c.f[i][j]+=a.f[i][k]*b.f[k][j]; //因为这里写成+ 所以wrong 了几次~~~~~!汗死
c.f[i][j]%=9973;
}
return c;
}
matrix pow_mod(matrix a,int b)
{
matrix s;
memset(s.f,0,sizeof(s.f));
for(int i=0;i<N;i++)
{
s.f[i][i]=1;
}
while(b)
{
if(b&1)
s=mul(s,a);
a=mul(a,a);
b=b/2;
}
return s;
}
int main()
{
int t,n,k;
cin>>t;
while(t--)
{
cin>>n>>k;
matrix e;
memset(e.f,0,sizeof(e.f));
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>e.f[i][j];
e=pow_mod(e,k);
int sum=0;
for(int i=0;i<n;i++)
sum=(sum+e.f[i][i])%9973;
cout<<sum<<endl;
}
return 0;
}