矩阵行列数是偶数,分为左上左下右上右下四块,一块里的数都有其他三个块的数字对应,使这四个数与他们之间的最大值相等即可
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 1010;
int n;
int a[N][N];
int main()
{
int T;
cin >> T;
while(T --)
{
cin >> n;
for(int i = 0; i < n; i ++)
for(int j = 0; j < n; j ++)
{
char c;
cin >> c;
a[i][j] = c - 'a' + 1;
}
int res = 0;
for(int i = 0; i < n / 2; i ++)
for(int j = 0; j < n / 2; j ++)
{
int num[4] = {a[i][j],a[j][n - i - 1],a[n - i - 1][n - j - 1],a[n - j - 1][i]};
int maxv = 0;
for(int i = 0; i < 4; i ++)
maxv = max(maxv,num[i]);
for(int i = 0; i < 4; i ++)
res += maxv - num[i];
}
cout << res << endl;
}
return 0;
}