1255 迷宫问题

#include<bits/stdc++.h>
using namespace std;
struct node{
    int x,y,from;
}que[30];
int fx[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
int f,r;
int mp[10][10]; 
void pr(int p){
    if(p==0){
        return ;
    }
    pr(que[p].from);
    cout<<"("<<que[p].x<<", "<<que[p].y<<")"<<endl; 
}
void bfs(int x,int y){
    f=r=1;
    que[r].x=x , que[r].y=y , que[r].from=0 ,mp[x][y]=1;
    
    while(f<=r){
        node t;
        t.x=que[f].x , t.y=que[f].y;
        
        if(t.x==4 && t.y==4){
            pr(f);
        }
        for(int i=0;i<4;i++){
            int nx=t.x+fx[i][0];
            int ny=t.y+fx[i][1];
            
            if(nx>=0 && nx<5 && ny>=0 && ny<5 && mp[nx][ny]==0){
                mp[nx][ny]=1;
                r++;
                que[r].x=nx;
                que[r].y=ny;
                que[r].from=f;
            }
        }
        f++;
    }
}
int main(){
    memset(mp,0,sizeof(mp));
    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++){
            cin>>mp[i][j];
        }
    }
    bfs(0,0);
    return 0;
}

 

上一篇:Python | 面试的常客,经典的生产消费者模式


下一篇:InsertAuditEntryNew