广度优先寻找迷宫!
来源:互联网 发布:windows开机吉他谱 编辑:程序博客网 时间:2024/05/21 08:03
#include<iostream>using namespace std;#include<stdio.h>#include<queue>const int INF=1000000000;typedef pair<int,int> P;char maze[105][105];int d[105][105];int n,m;int sx,sy;int gx,gy;int dx[4]={1,0,-1,0};int dy[4]={0,-1,0,1};int bfs(){ queue<P> que; que.push(P(sx,sy));//插入第一个 for(int i=0;i<n;i++) { for(int j=0;j<m;j++)//要将距离矩阵做好 { d[i][j]=INF; } } 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(0<=nx&&nx<n&&0<=ny&&ny<m&&maze[nx][ny]!='#'&&d[nx][ny]==INF) { que.push(P(nx,ny)); d[nx][ny]=d[p.first][p.second]+1; } } } return d[gx][gy];}int main(){ char c; cin>>n>>m; sx=0; sy=3; gx=3; gy=0; scanf("%c",&c); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { scanf("%c",&maze[i][j]); } scanf("%c",&c); } int res=bfs(); cout<<res<<endl; return 0;}
阅读全文
0 0
- 广度优先寻找迷宫!
- (BFS)广度优先搜索例子:迷宫,寻找连块数
- java实现从迷宫寻找出路算法(广度优先搜索)
- 迷宫问题(广度优先)
- 迷宫之广度优先搜索
- 迷宫问题-广度优先搜索
- 迷宫问题-广度优先搜索
- 广度优先搜索:迷宫问题
- 深度优先和广度优先遍历迷宫
- 迷宫路径&广度优先求解&深度优先求解&迷宫游戏
- 搜索_广度优先_小迷宫
- 基于广度优先算法迷宫生成类
- 队列:广度优先搜索求解迷宫
- 走迷宫 A*算法 广度优先算法
- Matlab 广度优先搜索求解迷宫问题
- poj 3984 迷宫问题 (广度优先BFS)
- 广度优先搜索求解迷宫问题
- 走迷宫1(广度优先)
- HTML之表格子元素选择器table>tr>td
- 更换APP启动图标和名称
- 浏览器兼容性问题总结
- C++中引用(&)的用法和应用实例
- Spring深入浅出原理剖析
- 广度优先寻找迷宫!
- NYOJ 12 喷水装置(二)
- FLV封装原理
- 微信小程序表单验证错误提示。
- css3 翻书动画
- iOS弹幕——HJDanmaku 2.0发布
- Ubuntu 动态库
- SecureCRT远程连接非root用户
- Java代码审查工具findbugs的使用总结