B3625 迷宫寻路 bfs求助
  • 板块学术版
  • 楼主Elysia11
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/11/23 18:46
  • 上次更新2023/11/23 21:06:38
查看原帖
B3625 迷宫寻路 bfs求助
982012
Elysia11楼主2023/11/23 18:46

这是代码QAQ

#include<bits/stdc++.h>
using namespace std;
int n,m;
char a[114][114];
int vis[114][114];
queue<pair<int,int> > s;
void bfs(){
	while(!s.empty()){
		int x=s.front().first;
		int y=s.front().second;
		vis[x][y]=1;
		s.pop();
		if(x==n&&y==m){
			cout<<"Yes";
			return;
		}
		if(a[x+1][y]=='.'&&!vis[x+1][y]){
			s.push(make_pair(x+1,y));
		}
		if(a[x-1][y]=='.'&&!vis[x-1][y]){
			s.push(make_pair(x-1,y));
		}
		if(a[x][y+1]=='.'&&!vis[x][y+1]){
			s.push(make_pair(x,y+1));
		}
		if(a[x][y-1]=='.'&&!vis[x][y-1]){
			s.push(make_pair(x,y-1));
		}
	}
	cout<<"No";
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	s.push(make_pair(1,1));
	bfs();
	return 0;
}
2023/11/23 18:46
加载中...