40分玄关
查看原帖
40分玄关
1495466
LINYUHENG2楼主2024/12/21 16:47
#include <bits/stdc++.h>
using namespace std;
int n,m;
char c[1005][1005];
int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int vis[100][100];
queue<int> qx,qy;

void bfs(){
	qx.push(1);
	qy.push(1);
	while(!qx.empty()){
		int x=qx.front();
		int y=qy.front();
		qx.pop();
		qy.pop();
		if(x==n&&y==m){
			cout<<"Yes";
			return ;
		}
		for(int i=0;i<4;i++){
			int next_x=dir[i][0];
			int next_y=dir[i][1];
			if(next_x>=1&&next_x<=n&&next_y>=1&&next_y<=m&&!vis[next_x][next_y]&&c[next_x][next_y]!='#'){
				vis[next_x][next_y]=1;
				qx.push(next_x);
				qy.push(next_y);
			}
		}
	}
	cout<<"No";
	return ;
}

int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
    	for(int j=1;j<=m;j++){
    		cin>>c[i][j];
		}
	}
    bfs();
    return 0;
}
2024/12/21 16:47
加载中...