迷宫的最短路径(深度bfs)
来源:互联网 发布:海底捞排号软件 编辑:程序博客网 时间:2024/06/05 07:17
给定一个N*M的迷宫,#代表墙壁,.代表通道,S代表起点,G代表终点,求S到G的最小步数。
#include<iostream>#include<queue>using namespace std;const int INF=1000000;typedef pair<int,int> P;int main(){ char map[100][100]; int sx,sy; int gx,gy; int n,m; int d[100][100]; int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1}; queue<P> que; cin>>n>>m; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>map[i][j]; } } 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]=='G') { gx=i; gy=j; } } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ d[i][j]=INF; } } que.push(P(sx,sy)); d[sx][sy]=0; while(que.size()){ P p=que.front(); que.pop(); if(p.first==gx&&p.second==gy) 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]!='#'&&d[nx][ny]==INF){ que.push(P(nx,ny)); d[nx][ny]=d[p.first][p.second]+1; } } } cout<<d[gx][gy]; return 0;}
0 0
- 迷宫的最短路径(深度bfs)
- 迷宫的最短路径 (BFS)
- BFS 迷宫的最短路径问题
- BFS:迷宫的最短路径
- BFS求迷宫的最短路径
- BFS 模板 【迷宫的最短路径】
- 迷宫的最短路径 -- BFS
- BFS 迷宫的最短路径
- 迷宫的最短路径(bfs)
- BFS 迷宫的最短路径
- 迷宫的最短路径 bfs
- 迷宫的最短路径-BFS算法
- 迷宫最短路径问题(BFS)
- 迷宫最短路径求解(BFS)
- 迷宫的最短路径(BFS的简单应用)
- ACM-迷宫的最短路径(bfs版)
- 搜索入门(BFS)迷宫的最短路径
- 迷宫的最短路径(BFS,起点到终点)
- HDU 4344 Mark the Rope
- 团体程序设计天梯赛L3-016 二叉搜索树的结构
- Spring Boot项目部署到外部Tomcat服务器
- 论text-align:center与margin:0 auto的区别。
- 4.man
- 迷宫的最短路径(深度bfs)
- BZOJ 3682 Phorni
- ubuntu查看系统版本和linux内核版本
- BZOJ 4161 Shlw loves matrixI
- WiFi debug log
- deepin 的free命令显示改进
- Centos常用工具安装
- java多线程
- HTML元素title里面和js里面几句话如何换行 格式代码是如何的?