为司马段错误:
#include<bits/stdc++.h>
using namespace std;
int mp[10][10];
bool f[10][10];
int ax[16]={-2,-2,-2,-2,-2,-1,0,1,2,2,2,2,2,1,0,-1};
int ay[16]={-2,-1,0,1,2,2,2,2,2,1,0,-1,-2,-2,-2,-2};
int n,m;
int yj(int x,int y){
return (x<1||x>n||y<1||y>m);
}
void fz(int x,int y,bool ff){
for(int i=x-1;i<=x+1;i++){
for(int j=y-1;j<=y+1;j++){
if(yj(i,j)) continue;
f[i][j]=ff;
}
}
}
int num,maxn=-114514;
void dfs(int x,int y){
num+=mp[x][y];
maxn=max(maxn,num);
for(int i=1;i<=16;i++){
int xx=ax[i]+x,yy=ay[i]+y;
if(yj(xx,yy)) continue;
if(f[xx][yy]) continue;
fz(xx,yy,1);
dfs(xx,yy);
fz(xx,yy,0);
}
num-=mp[x][y];
}
signed main(){
int T=1;
// cin>>T;
while(T--){
memset(mp,0,sizeof(mp));
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>mp[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
fz(i,j,1);
dfs(i,j);
fz(i,j,0);
}
}
cout<<maxn<<'\n';
}
return 0;
}