#include<bits/stdc++.h>
using namespace std;
int T;
int n,m;
int a[10][10];
bool vis[10][10];
int dx[8]={1,1,1,-1,-1,-1,0,0};
int dy[8]={1,0,-1,1,0,-1,1,-1};
int ans;
void dfs(int sum,int last){
ans=max(ans,sum);
for(int i=last;i<=n;i++){
for(int j=1;j<=m;j++){
bool ok=true;
if(vis[i][j]==1)
continue;
for(int k=0;k<8;k++){
int x=i+dx[k],y=j+dy[k];
if(vis[x][y]==1){
ok=false;
}
}
if(ok){
vis[i][j]=1;
dfs(sum+a[i][j],i);
vis[i][j]=0;
}
}
}
}
int main()
{
cin>>T;
while(T--){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
ans=0;
dfs(0,1);
cout<<ans<<endl;
}
return 0;
}
最后一个点TLE了,83分,求dalao调一下