http://code.bupt.edu.cn/problem/p/96/
#include<stdio.h>
#include<stdlib.h>
int main()
{
int T;
scanf("%d",&T);
for(int a=1;a<=T;a++)
{
int n,k;
scanf("%d %d",&n,&k);
int * * s;
int * * sum;
int * * tmp;
s=new int * [n+1];
sum=new int * [n+1];
tmp=new int * [n+1];
for(int i=1;i<=n;i++)
{
s[i]=new int[n+1];
sum[i]=new int[n+1];
tmp[i]=new int[n+1];
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
scanf("%d",&s[i][j]);
sum[i][j]=s[i][j];
}
for(int p=1;p<k;p++)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
tmp[i][j]=0;
for(int k=1;k<=n;k++)
tmp[i][j]=tmp[i][j]+sum[i][k]*s[k][j];
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
sum[i][j]=tmp[i][j];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<n;j++)
printf("%d ",sum[i][j]);
printf("%d\n",sum[i][n]);
}
}
//system("pause");
return 0;
}