广度优先搜索(bfs)模板
2024-11-24 10:26:39
发布于:北京
#include <bits/stdc++.h>
using namespace std;
int dir[4][2] = {{-1,0},{1,0},{0,-1},{0,1}},n,m,sum,sho=-1;
char mp[45][45];
bool flag;
bool vis[45][45];
struct node{
int x,y,step;
}t;
queue <node> q;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>mp[i][j];
}
}
q.push({1,1});
vis[1][1]=1;
while(!q.empty()){
node t=q.front();
q.pop();
if(t.x==n&&t.y==m){
sho=t.step;
break;
}
for(int i=0;i<4;i++){
int nx=t.x+dir[i][0];
int ny=t.y+dir[i][1];
if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&!vis[nx][ny]&&mp[nx][ny]!='#'){
q.push({nx,ny,t.step+1});;
vis[nx][ny]=true;
}
}
}
cout<<sho+1;
return 0;
}
这里空空如也
有帮助,赞一个