大佬帮忙看一看啊
#include<bits/stdc++.h>
using namespace std;
int n,m,xxx,yyy;
int dx[8]={1,1,-1,-1,2,2,-2,-2};
int dy[8]={-2,2,-2,2,-1,1,-1,1};
int mapp[401][401];
struct node{
int x,y,step;
}t;
queue <node> q;
bool visit[401][401];
int main(){
memset(mapp,-1,sizeof(mapp));
scanf("%d%d%d%d",&n,&m,&xxx,&yyy);
// for(int i=1;i<=n;i++){
// for(int j=1;j<=m;j++){
// printf("%d ",mapp[i][j]);
// }
// printf("\n");
// }
q.push(node{xxx,yyy,0});
visit[xxx][yyy]=1;
mapp[xxx][yyy]=0;
while(!q.empty()){
t=q.front();q.pop();
for(int i=0;i<8;i++){
int xx=t.x+dx[i];
int yy=t.y+dy[i];
if(xx>0&&xx<=n&&yy>0&&yy<=m&&!visit[xx][yy]){
q.push((node){xx,yy,t.step+1});
mapp[xx][yy]=t.step+1;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
printf("%-5d ",mapp[i][j]);
}
printf("\n");
}
return 0;
}