Mirror Grid
题意:
给定一个n * n的矩形,将其旋转90°,180°,270°后保持不变.问需要最少多少步可以完成.
思路:
由题意可知这个矩阵必须是中心对称图形,所以遍历这个矩形的每一层,查看每次0多还是1多即可
重点 : 遍历矩阵
AC代码:
#include <iostream>
#include <algorithm>
using namespace std;
int a[105][105];
int main(){
int t;cin >> t;
while(t --){
int n;cin >> n;
for(int i = 1;i <= n;i ++)
for(int j = 1;j <= n;j ++){
char x;cin >> x;
a[i][j] = x - '0';
}
int ans = 0;
for(int i = 1;i <= (n + 1) / 2;i ++){
for(int j = 1;j <= n / 2;j ++){
int x = a[i][j] + a[j][n-i+1] + a[n-i+1][n-j+1] + a[n-j+1][i];
ans += min(4 - x,x);
}
}
cout << ans << endl;
}
return 0;
}