#include<bits/stdc++.h>
using namespace std;
int T,n,m,data[7][7];
/*
-2 -1 0 1 2
-2 y y y y y
-1 y n n n y
0 y n * n y
1 y n n n y
2 y y y y y
*/
int dx[]={0,-2,-1,0,1,2,2,2,2,2,1,0,-1,-2,-2,-2,-2};
int dy[]={0,-2,-2,-2,-2,-2,-1,0,1,2,2,2,2,2,1,0,-1};
bool b[7][7];
long long max(long long a,long long b){
return a>b?a:b;
}
long long dfs(int x,int y,long long ans){
ans+=data[x][y];
// cout<<x<<","<<y<<" ans:"<<ans<<endl<<" ↓"<<endl;
for(int i=1;i<=16;i++){
int tx=x+dx[i],ty=y+dy[i];
if(tx>=1 and tx<=n and ty>=1 and ty<=m and !b[tx][ty]){
b[tx][ty]=true;
ans=max(dfs(tx,ty,ans),ans);
b[tx][ty]=false;
}
}
return ans;
}
int main(){
cin>>T;
for(int i=1;i<=T;i++){
cin>>n>>m;
long long maxsum=-114514;
for(int j=1;j<=n;j++)
for(int k=1;k<=m;k++) cin>>data[j][k];
for(int j=1;j<=n;j++)
for(int k=1;k<=m;k++) maxsum=max(dfs(j,k,0),maxsum);
cout<<maxsum<<endl;
}
return 0;
}
运行到第一组数据的时候直接就死循环了,求调