题意:矩阵模3乘法。
题解:
#include<cstdio>
#include<cstring>
const int N=808;
int a[N][N],b[N][N],c[N][N];
int main() {
int n;
while(~scanf("%d",&n)) {
///init
memset(c,0,sizeof(c));
///read
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j) {
scanf("%d",&a[i][j]);
a[i][j]%=3;
}
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j) {
scanf("%d",&b[i][j]);
b[i][j]%=3;
}
///solve
for(int i=1;i<=n;++i) {
for(int k=1;k<=n;++k) {
if(a[i][k]==0) continue;
for(int j=1;j<=n;++j) {
c[i][j]+=a[i][k]*b[k][j];
}
}
}
///print
for(int i=1;i<=n;++i) {
for(int j=1;j<=n;++j) {
printf("%d%c",c[i][j]%3,(j==n)?'\n':' ');
}
}
}
return 0;
}