这不是具体的哪道题,但一眼能看出来是矩阵乘法模板吧....(第四十九行加上甚至输入都无法输入,但注释掉就好了,求解)
#include<bits/stdc++.h>
using namespace std;
const long long mod=998244353;
int t,n;
struct mat{
long long l[3001][3001];
mat(){memset(l,0,sizeof l);}
mat operator*(const mat &b)const{
mat res;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
for(int k=1;k<=n;k++){
res.l[i][j]=(res.l[i][j]+l[i][k]*b.l[k][j])%mod;
}
}
}
return res;
}
}a1,b1,c1,z;
long long qpow(long long a,long long b){
long long ans=1,base=a;
for(;b;b=b>>1){
if(b&1)ans=ans*base%mod;
base=base*base%mod;
}
return ans;
}
signed main(){
//freopen("matrix.in","r",stdin);
//freopen("matrix.out","r",stdout);
cin>>t;
while(t--){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%lld",&a1.l[i][j]);
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%lld",&b1.l[i][j]);
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%lld",&c1.l[i][j]);
}
}
z=a1*b1;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
printf("%lld ",z.l[i][j]);
}
cout<<endl;
}
}
return 0;
}