rt,代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[8][2]={{2,1},{2,-1},{-2,1},{-2,-1},{1,2},{1,-2},{-1,2},{-1,-2}};
struct coord{
int x,y;
};
queue<int> q;
int main(){
int n,m,x1,y1;
cin>>n>>m>>x1>>y1;
int ans[x1+1][y1+1];
memset(ans,-1,sizeof(ans));
coord tmp={x1,y1};
q.push(tmp);
ans[x1][y1]=0;
while(!q.empty()){
coord b=q.front();
int x2=b.x,y2=b.y;
for(int i=0;i<=1;i++){
int x3=x2+a[i],y3=y2+a[i],c=ans[x3][y3];
if(x3<1||x3>n||y3<1||y3>n||ans!=-1)continue;
ans[x3][y3]=d+1;
coord tmp={x3,y3};
q.push(x3,y3);
}
}
for(int i=1;i<=n;i++,cout<<' '<<endl)
for(int j=1;j<=m;j++)
printf("%-5d",ans[i][j]);
return 0;
}