矩阵幂
矩阵幂
http://www.nowcoder.com/questionTerminal/31e539ab08f949a8bece2a7503e9319a
#include <stdio.h> void mul(int n,int a[n][n],int b[n][n]) { int i,j,k,c[n][n]; for(i=0;i<n;i++) { for(j=0;j<n;j++) { c[i][j]=0; for(k=0;k<n;k++) c[i][j]+=a[i][k]*b[k][j]; } } for(i=0;i<n;i++) for(j=0;j<n;j++) a[i][j]=c[i][j]; } int main() { int m,n,k,i,j; scanf("%d%d",&n,&k); int a[n][n],ans[n][n]; for(i=0;i<n;i++) for(j=0;j<n;j++) { scanf("%d",&a[i][j]); if(i==j) ans[i][j]=1; else ans[i][j]=0; } while(k!=0) { if(k%2==1) mul(n,ans,a); k/=2; mul(n,a,a); } for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%d ",ans[i][j]); printf("\n"); } }(•̀ᴗ•́)و