sb题,不解释

1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #define mod 9973 5 #define ll long long 6 using namespace std; 7 int nn,k,t; 8 struct rec{ 9 ll v[11][11]; 10 rec(){memset(v,0,sizeof v);} 11 }; 12 rec mul(rec a,rec b){ 13 rec ans; 14 ll sum; 15 for(int k=0;k<nn;k++){ 16 for(int i=0;i<nn;i++){ 17 for(int j=0;j<nn;j++){ 18 sum=a.v[i][k]*b.v[k][j]%mod; 19 ans.v[i][j]=(ans.v[i][j]+sum)%mod; 20 } 21 } 22 } 23 return ans; 24 } 25 rec pow(rec a,int n){ 26 if(n==1) return a; 27 rec ans=pow(a,n/2); 28 ans=mul(ans,ans); 29 if(n&1) return mul(ans,a); 30 else return ans; 31 } 32 int gao(rec a){ 33 int ret=0; 34 for(int i=0;i<nn;i++) ret=(ret+a.v[i][i])%mod; 35 return ret; 36 } 37 int main(){ 38 scanf("%d",&t); 39 while(t--){ 40 scanf("%d%d",&nn,&k); 41 rec a; 42 for(int i=0;i<nn;i++){ 43 for(int j=0;j<nn;j++){ 44 scanf("%lld",&a.v[i][j]); 45 } 46 } 47 a=pow(a,k); 48 printf("%d ",gao(a)); 49 } 50 return 0; 51 }