#include<iostream>
using namespace std;
int startx,starty,n,m
int book[105][105]={0},map[105][105]={0};
struct node{
int x;
int y;
int step;
};
int main(){
//输入地图
cin>>m>>n;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cin>>map[i][j];
}
}
//定义队列
struct nose que[10500];
int head=1,tail=1;
//输入起始点
que[tail].x=startx;
que[tail].y=starty;
que[tail].step=0;
++tail;
book[que[head].x][que[head].y]=1;
//探索
int tx,ty;
//四个方向
int next[4][2]={(1,0),(0,1),(-1,0),(0,-1)}
while(head<tail){
//枚举每一种可能
for(int i=0;i<4;i++){
tx=que[head].x+next[i][0];
ty=que[head].y+next[i][1];
//判断边界
if(tx<0||ty<0||tx>=m||ty>=n) continue;
//满足条件
if(a[tx][ty]==0&&book[tx][ty]==0){
book[tx][ty]=1;
que[tail].x=tx;
que[tail].y=ty;
que[tail].step=que[tail].step+1;
++tail;
}
}
head++;
}
return 0;
}
广搜模板
最新推荐文章于 2022-11-02 11:33:30 发布