广搜题解
2024-06-08 10:31:21
发布于:广东
44阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int a,b;
int x_,y_;
int n[8][2]={{1,2},{-1,2},{1,-2},{-1,-2},{2,1},{-2,1},{2,-1},{-2,-1}};
int 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;
}
全部评论 1
he'wo'ting'xve'chong'min'le?
2024-07-07 来自 上海
0看不懂思密达
2024-07-07 来自 广东
0和我同学重名?你哪个学校的?
2024-07-07 来自 上海
0你猜
2024-07-07 来自 广东
0
有帮助,赞一个