C語言源碼: [cpp] #include<stdio.h> int main() { int t,a[10][10],i,j,l,n,k,tr,b[10][10],c[10][10]; while(scanf("%d",&t)!=EOF) { while(t--) { scanf("%d %d",&n,&k); for(i=0;i<n;i++) for(j=0;j<n;j++) { scanf("%d",&a[i][j]); b[i][j]=i==j?1:0; } while(k) { if(k%2==1) { for(i=0;i<n;i++) for(j=0;j<n;j++) c[i][j]=0; for(i=0;i<n;i++) for(j=0;j<n;j++) for(l=0;l<n;l++) c[i][j]+=a[i][l]*b[l][j]; for(i=0;i<n;i++) for(j=0;j<n;j++) b[i][j]=c[i][j]%9973; } k=k/2; for(i=0;i<n;i++) for(j=0;j<n;j++) c[i][j]=0; for(i=0;i<n;i++) for(j=0;j<n;j++) for(l=0;l<n;l++) c[i][j]+=a[i][l]*a[l][j]; for(i=0;i<n;i++) for(j=0;j<n;j++) a[i][j]=c[i][j]%9973; } tr=0; for(i=0;i<n;i++) tr+=b[i][i]; printf("%d\n",tr%9973); } } }