题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
对于每个字符,遍历矩阵中有4个位置或两个位置,或1个位置是回文对应的。
回文对应的数组,先排序,用数组的较大的一半减去较小的一半
C++ 代码
#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i =a ; i <b ; ++i)
const int maxn = 110;
int a[maxn][maxn];
int main()
{
int T;cin>>T;
rep(yangli,0,T)
{
int n,m;cin>>n>>m;
rep(i,0,n)
rep(j,0,m)
cin>>a[i][j];
long long int ans = 0;
rep(i,0,((n+1)>>1))
rep(j,0,((m+1)>>1))
{
vector<int> buffer;
buffer.push_back(a[i][j]);
if(i != (n-i-1))
{
buffer.push_back(a[n-i-1][j]);
}
if(j != (m-1-j))
{
buffer.push_back(a[i][m-1-j]);
}
if(buffer.size()==3)
{
buffer.push_back(a[n-1-i][m-1-j]);
}
sort(buffer.begin(),buffer.end());
rep(w,0,buffer.size()>>1)
ans+= (buffer[buffer.size()-1-w] - buffer[w]);
}
cout<<ans<<endl;
}
}