fsdfdsfdsfdsfsafzxfs
2024-08-08 15:23:00
发布于:广东
#include<bits/stdc++.h>
using namespace std;
int dir[4][2] = {{-1, 0},{1, 0},{0, -1},{0, 1}};
char mp[110][110];
int vis[110][110],m,n,flag=0;
struct node{
int x,y;
char val;
};
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>mp[i][j];
}
}
if(mp[1][1] == '#'){
cout<<"NO";
return 0;
}
node start = {1,1,mp[1][1]};
vis[1][1] = 1;
queue<node> q;
q.push(start);
while(!q.empty()){
node head = q.front();
q.pop();
if(head.x == n && head.y == m){
flag = 1;
break;
}
for(int i=0;i<4;i++){
int xx = head.x + dir[i][0];
int yy = head.y + dir[i][1];
if(xx>=1 && xx<=n && yy>=1 && yy<=m && vis[xx][yy] ==0 && mp[xx][yy] == '.'){
node cango = {xx,yy,'.'};
vis[xx][yy]=1;
q.push(cango);
}
}
}
if(flag==1) cout<<"YES";
else cout<<"NO";
return 0;
}
这里空空如也
有帮助,赞一个