迷宫的最短路径 -- BFS
来源:互联网 发布:怎样学好plc编程 编辑:程序博客网 时间:2024/06/04 18:46
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <vector>#include <queue>#include <algorithm>#include <set>#include <stack>using namespace std;#define MM(a) memset(a,0,sizeof(a))typedef long long LL;typedef unsigned long long ULL;const int maxn = 2*1e3+5;const int INF = 1e9+5;const int mod = 1000000007;const double eps = 1e-7;char map[105][105];int dis[105][105];int dx[4] = {1, -1, 0, 0};int dy[4] = {0, 0, -1, 1};int n, m;int sx, sy, ex, ey;typedef pair <int, int> P;void Init(){ for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { dis[i][j] = INF; } }}int BFS(){ queue<P> que; Init(); que.push(P(sx,sy)); dis[sx][sy] = 0; while(que.size()) { P p = que.front(); que.pop(); if(p.first==ex && p.second==ey) break; for(int i=0; i<4; i++) { int nx = p.first+dx[i]; int ny = p.second+dy[i]; if(nx>=0 && nx<n && ny>0 && ny<m && map[nx][ny]!='#' && dis[nx][ny]==INF) { que.push(P(nx, ny)); dis[nx][ny] = dis[p.first][p.second]+1; } } } return dis[ex][ey];}int main(){ while(cin>>n>>m) { for(int i=0; i<n; i++) cin>>map[i]; for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { if(map[i][j] == 'S') { sx = i; sy = j; } if(map[i][j] == 'E') { ex = i; ey = j; } } } printf("%d\n",BFS()); } return 0;}/**#S######.#......#..#.#.##.##.#.#........##.##.####....#....#.#######.#....#......####.###.....#...E#**/
0 0
- BFS 迷宫的最短路径问题
- BFS:迷宫的最短路径
- BFS求迷宫的最短路径
- BFS 模板 【迷宫的最短路径】
- 迷宫的最短路径 -- BFS
- BFS 迷宫的最短路径
- 迷宫的最短路径 (BFS)
- 迷宫的最短路径(bfs)
- BFS 迷宫的最短路径
- 迷宫的最短路径 bfs
- 迷宫的最短路径-BFS算法
- 迷宫最短路径(bfs)
- BFS 迷宫最短路径
- 迷宫的最短路径(BFS的简单应用)
- ACM-迷宫的最短路径(bfs版)
- 迷宫的最短路径之BFS算法
- 搜索入门(BFS)迷宫的最短路径
- 迷宫的最短路径(深度bfs)
- 基于Wolf32F031 自由评估板的Buzzer(PWM控制方式)实验硬件原理及软件API使用方法(适用于STM32F030/031)
- malloc源码分析---3
- 【Github教程】史上最全github使用方法:github入门到精通
- LightOJ 1079 - Just another Robbery (01背包)
- Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead.
- 迷宫的最短路径 -- BFS
- 基于Wolf32F031 自由评估板的ADC实验硬件原理及软件API使用方法(适用于STM32F030/031)
- Tomcat 管理员,用户名,密码配置
- Source folder is not a Java project
- Imageloader<3>-单例模式
- 基于加权最小二乘法的保边缘平滑滤波器(WLS),matlab程序自己编写,更直观
- poj3292
- POJ 2318 TOYS (判断点与直线关系+二分查找)
- Ubuntu声音全部消失