bfs---迷宫的最短路径
给定一个大小为N*M的迷宫。迷宫由通道和墙壁组成,每一步可以向邻接的上下左右四格的通道移动。请求出从起点到终点所需的最小步数。请注意,本题假定从起点一定可以移动到终点。N,M小于等于100. 输入 N=10,M=10 #S######.# ......#..# .#.##.##.# .#........ ##.##.#### ....#....# .#######.# ....#..... .####.###. ....#...G# 输出 22 实现代码 #include<iostream> #include<queue> using namespace std; typedef pair<int,int> P; char a[110][110]; //迷宫 int b[110][110]; //到每点的步数 int sx,sy; //起点 int ex,ey; //终点 int n,m; int INF = 100000000; int dx[4] = {1,0,-1,0}; //四个方向 int dy[4] = {0,1,0,-1}; int bfs(int x,int y){ queue<P> que; que.push(P(sx,sy)); //将起点加入队列,并把这一地点的距离设置为0 b[sx][sy] = 0; while(que.size()){ /