题解
2024-01-27 15:52:32
发布于:吉林
44阅读
0回复
0点赞
#include<bits/stdc++.h>;
using namespace std;
int a,b,x_,y_,n[8][2]={{1,2},{-1,2},{1,-2},{-1,-2},{2,1},{-2,1},{2,-1},{-2,-1}},maps[500][500];
struct dd1{
int x,y,sum;
};
void bfs(){
queue<dd1>q;
q.push({x_,y_,0});
maps[x_][y_]=0;
while(!q.empty()){
int x=q.front().x;
int y=q.front().y;
int sum=q.front().sum;
q.pop();
for(int i=0;i<8;i++){
int xx=x+n[i][0];
int yy=y+n[i][1];
if(xx<1||yy<1||xx>a||yy>b)continue;
if(maps[xx][yy]!=-1)continue;
maps[xx][yy]=sum+1;
q.push({xx,yy,sum+1});
}
}
}
int main(){
cin>>a>>b>>x_>>y_;
for(int i=1;i<=a;i++){
for(int j=1;j<=b;j++){
maps[i][j]=-1;
}
}
bfs();
for(int i=1;i<=a;i++){
for(int j=1;j<=b;j++){
cout<<maps[i][j]<<' ';
}
cout<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个