wawa 求助

B3625 迷宫寻路

zprbszpr @ 2023-07-11 15:38:22

#include<iostream>
using namespace std;
bool map[100][100],check[100][100];
struct zuobiao{
    int x,y;
}q[1000];
int bx[4][2]={1,0,0,1,-1,0,0,-1};
void bfs(int x,int y,int n,int m){
    int b,e,X,Y,xx,yy;
    b++;
    q[1].x=x;
    q[1].y=y;
    while(b<e){
    X=q[b].x,Y=q[b].y;
    check[X][Y]=1;
    for(int i=0;i<4;i++){
    xx=X+bx[i][0];
    yy=Y+bx[0][i];
    if(x>n||y>m||x<0||y<0){
        continue;
    }
    if(map[xx][yy]&&check[xx][yy]==0){
        q[e++].x=xx;
        q[e].y=yy;
    }   
    }
    if(map[xx][yy]==map[n][m])
    cout<<"yes";
    else
    cout<<"No";
    }

}
int main(){
    int n,m;
    char a;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>a;
            if(a=='.'){
                map[i][j]=a;
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(!check[i][j]&&map[i][j]){
            bfs(i,j,n,m);
            }
        }
    }
    return 0;
}

感谢大佬


by ganll @ 2023-07-11 15:59:53

你可以试着用dfs


by xin20110426 @ 2023-07-11 16:06:28

注意细节,细节错误很多,检查要仔细

#include<iostream>
using namespace std;
bool map[1000][1000],check[1000][1000];
struct zuobiao{
    int x,y;
}q[100000];
int bx[4][2]={1,0,0,1,-1,0,0,-1};
void bfs(int x,int y,int n,int m){
    int b = 0,e = 1,X,Y,xx,yy;
    q[1].x=x;
    q[1].y=y;
    while(b<e){
    b++;
    X=q[b].x,Y=q[b].y;
    if(X == n && Y == m) {
        cout<<"Yes";
        return;
    }
    for(int i=0;i<4;i++){
    xx=X+bx[i][0];
    yy=Y+bx[i][1];
    if(xx>n||yy>m||xx<1||yy<1){
        continue;
    }
    if(map[xx][yy]&&check[xx][yy]==0){
        q[++e].x=xx;
        q[e].y=yy;
        check[xx][yy]=1;
    }   
    }
    }

    cout<<"No";
    return;
}
int main(){
    int n,m;
    char a;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>a;
            if(a=='.'){
                map[i][j]=1;
            }
        }
    }
    bfs(1,1,n,m);
    return 0;
}

by zprbszpr @ 2023-07-11 16:18:03

@xin20110426 感谢大佬


|