#include<bits/stdc++.h>
#define endl '\n'
#define int long long
const int N = 2e3 + 10;
using namespace std;
int dx[9]={1,1,1,-1,-1,-1,0,0,0};
int dy[9]={1,-1,0,-1,1,0,1,-1,0};
int ans=0;
int n,m;
int st[N][N],a[N][N];
void dfs(int x,int y,int z){
ans=max(ans,z);
if(x>n||y>m){
return;
}
if(st[x][y]==0){
for(int i=0;i<9;i++) st[x+dx[i]][y+dy[i]]++;
dfs(x+1,y,z+a[x][y]);
dfs(x,y+1,z+a[x][y]);
for(int i=0;i<9;i++) st[x+dx[i]][y+dy[i]]--;
}
dfs(x+1,y,z);
dfs(x,y+1,z);
}
void solve() {
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
dfs(1,1,0);
cout<<ans<<endl;
ans=0;
}
signed main(){
int t = 1;
cin >> t;
while (t--) solve();
return 0;
}
哪里出问题了?(蒟蒻求助QAQ)