如题,样例没事,但是全部WA掉了,求各位大神帮助!
#include<iostream>
using namespace std;
typedef long long ll;
ll n,k;
struct matrix{
ll mt[201][201];
void output(){for(ll i=1;i<=n;i++){for(ll j=1;j<=n;j++)cout<<mt[i][j]<<" ";cout<<endl;}}
};
const ll mod=1000000007ll;
matrix operator*(matrix x,matrix y){
matrix z;
for(ll i=1;i<=n;i++){
for(ll j=1;j<=n;j++){
for(ll k=1;k<=n;k++)z.mt[j][k]=(x.mt[j][i]*y.mt[i][k]%mod+z.mt[j][k])%mod;
}
}
return z;
}
matrix fpow(matrix b,ll p){
if(p==1)return b;
matrix ans=fpow(b,(p>>1));
ans=ans*ans;
if(p&1)ans=ans*b;
return ans;
}
matrix a,res;
int main(){
cin>>n>>k;
for(ll i=1;i<=n;i++)for(ll j=1;j<=n;j++)cin>>a.mt[i][j];
res=fpow(a,k);
res.output();
return 0;
}