m+7
2025-09-02 20:07:08
发布于:浙江
4阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
long long n,m,x,y,dis[409][409],dir[8][2]={-2,-1,-2,1,-1,2,1,2,2,1,2,-1,1,-2,-1,-2};
struct node{
int x, y;
}l,r;
int main() {
memset(dis,-1,sizeof(dis));
cin>>n>>m>>x>>y;
dis[x][y]=0;
queue<node>q;
q.push({x,y});
while(q.size()){
r=q.front();
q.pop();
for(int i=0;i<8;i++){
l.x=r.x+dir[i][0];
l.y=r.y+dir[i][1];
if(l.x>=1&&l.x<=n&&l.y>=1&&l.y<=m&&dis[l.x][l.y]==-1){
dis[l.x][l.y]=dis[r.x][r.y]+1;
q.push({l.x,l.y});
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
printf("%-5d",dis[i][j]);
}
cout<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个