题目链接
一道签到题
注意到题干中要求的为无穷次运算后的结果,且3×3矩阵元素和为1,故无穷次后要么是原来的矩阵要么是全0矩阵,只要左边有比1个多的非0元素,则结果必为全0矩阵,否则就输出原矩阵。
AC代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 55;
int T,n;
int ans[maxn][maxn];
int sum;
int k[4][4],a[maxn][maxn],b[maxn][maxn];
int main()
{
cin>>T;
while(T--){
memset(ans,0,sizeof(ans));
memset(a,0,sizeof(a));
memset(k,0,sizeof(k));
memset(b,0,sizeof(b));
sum = 0;
cin>>n;
for (register int i=1; i<=n; i++)
for (register int j=1; j<=n; j++) cin>>a[i][j];
for (register int i=1; i<=3; i++)
for (register int j=1; j<=3; j++) {
cin>>k[i][j];
sum += k[i][j];
}
if (sum == k[1][1])
for (int i=1; i<=n; i++)
for (int j=1; j<=n; j++) ans[i][j] = a[i][j];
for (int i=1; i<=n; i++){
for (int j=1; j<=n; j++) {
cout<<ans[i][j];
if (j != n) cout<<" ";
}
cout<<endl;
}
}
return 0;
}