头像
知骥君
发布于 2022-06-28 18:22
+ 关注

问题

#include
#include
#include
using namespace std;
int a,b;
int fx,fy,ex,ey;
char map[501][501];
const int dx[]={0,0,1,-1},dy[]={1,-1,0,0};
struct d{
    int x,y;
};
void bfs(){
    queue q;
    q.push({fx,fy});
    while(!q.empty()){
        int nx=q.front().x,ny=q.front().y;
        if(nx==ex&&ny==ey){puts("Yes");return;}
        q.pop();
        for(int i=0;i<4;i++){
            if(nx+dx[i]>=0&&nx+dx[i]=0&&ny+dy[i]<b&&map[nx+dx[i]][ny+dy[i]]!='#')q.push({nx+dx[i],ny+dy[i]});
        }
    }
    puts("No");
}
int main(){
    while(cin>>a>>b){
        //cout<<a<<b<<endl;
        for(int i=0;i<a;i++){
            for(int j=0;j<b;j++){
                cin>>map[i][j];
                if(map[i][j]=='S')fx=i,fy=j;
                else if(map[i][j]=='E')ex=i,ey=j;
            }
        }
        bfs();
    }
}

内存超限救救

全部评论

(0) 回帖
加载中...
话题 回帖

本文相关内容

等你来战

查看全部

热门推荐