@[zuoyichen](/user/109678)
可以看看我的:
```cpp
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<map>
#include<queue>
#include<stack>
#include<stdio.h>
//#define int __int128
//const int mod (1e9+7);
//#define int long long
// const int inf=0x7fffff;
// const int maxn=20023;
using namespace std;
struct node {
int x,y;
};
int n,m,a[405][405],v[405][405],dx[]={-1,-2,-2,-1,1,2,2,1},dy[]={2,1,-1,-2,2,1,-1,-2},xx,yy;
inline bool bfs() {
queue<node> q;
q.push({xx,yy});
while(q.size()) {
node dt=q.front();
q.pop();
// if(dt.x==n) return true ;
for(int i=0;i<8;i++) {
int x=dt.x+dx[i];
int y=dt.y+dy[i];
if(x<1||y<1||x>n||y>m||v[x][y]) {
continue ;
}
v[x][y]=1;
a[x][y]=a[dt.x][dt.y]+1;
q.push({x,y});
}
}
return 0;
}
signed main()
{
cin>>n>>m>>xx>>yy;
memset(a,-1,sizeof(a));
a[xx][yy]=0;
v[xx][yy]=1;
bfs();
for(int i=1;i<=n;i++) {
for(int j=1;j<=m;j++) {
printf("%-5d",a[i][j]);
}
printf("\n");
}
return 0;
}
```
建议您重写
by xingcode @ 2023-02-26 08:07:04