下载样例看的时候发现什么也没有输出...不知道为什么...
#include<bits/stdc++.h>
using namespace std;
typedef long long lt;
const lt N = 110, mod = 1e9 + 7;
lt l, n;
struct T{
lt g[N][N];
T(){ memset(g, 0, sizeof(g)); }
}s, ans;
T operator * (const T &a, const T &b){
T c;
for(int k = 1; k <= l; k++){
for(int i = 1; i <= l; i++){
for(int j = 1; j <= l; j++){
c.g[i][j] = (c.g[i][j] + a.g[i][k] * b.g[k][j] % mod) % mod;
}
}
}
return c;
}
T qp(T a, lt n){
if(n == 1) return a;
T b = qp(a, n/2);
b = !n % 2 ? b * b : (b * b) * a;
return b;
}
int main(){
scanf("%lld%lld", &l, &n);
for(int i = 1; i <= l; i++){
for(int j = 1; j <= l; j++){
scanf("%lld", &s.g[i][j]);
}
}
for(int i = 1; i <= l; i++){
ans.g[i][i] = 1;
}
if(n) ans = qp(s, n);
for(int i = 1; i <= l; printf("\n"), i++)
for(int j = 1; j <= l; j++)
printf("%lld ", ans.g[i][j] % mod);
return 0;
}