《挑战程序设计比赛》 P35 题目:迷宫的最短路径 广度搜索
来源:互联网 发布:购房增值税的算法 编辑:程序博客网 时间:2024/06/06 18:24
深度搜素, 利用STL中的 Queue
10 10
#S######.#
......#..#
.#.##.##.#
.#........
##.##.####
....#....#
.#######.#
....#.....
.####.###.
....#...G#
#include <bits/stdc++.h>using namespace std;struct P{ int x; int y; int dis; P(int x,int y ,int dis){ this->x =x; this->y=y; this->dis=dis; }};int N,M;char yard[100][100];int dx[]={0, 0 , 1, -1 };int dy[]={1 , -1 , 0, 0 };int sx,sy,gx,gy;void bfs(){ queue<P> Q; Q.push( P(sx,sy,0) ); while( !Q.empty() ) { P p=Q.front(); Q.pop(); for(int i=0;i<4;i++){ int newx = p.x + dx[i]; int newy = p.y + dy[i]; if( newx == gx && newy == gy ) { cout << p.dis + 1; return; } if( newx>=0 && newx<N && newy>0 && newy<M && yard[newx][newy]=='.' ) { Q.push( P( newx, newy, p.dis+1 ) ); yard[newx][newy] = '#'; } } }}int main(){ cin >> N >> M ; for(int i=0;i<N;i++){ for(int j=0;j<M;j++){ char t; //这里调试了半个小时。 误输入了int cin >> t; if( t=='S') { sx=i; sy=j;} if( t=='G') { gx=i; gy=j;} yard[i][j] = t; } } bfs(); return 0;}
阅读全文
0 0
- 《挑战程序设计比赛》 P35 题目:迷宫的最短路径 广度搜索
- 广度优先搜索 《挑战程序设计竞赛》——迷宫的最短路径
- 挑战程序设计竞赛 2.1迷宫的最短路径
- 《挑战程序设计竞赛》P34迷宫的最短路径
- 【挑战程序设计竞赛】之 迷宫的最短路径
- 广度优先搜索迷宫的最短路径走法!
- 迷宫最短路径 --- 广度优先搜索(广搜)
- 迷宫最短路径 广度优先搜索—C
- 迷宫问题(广度优先搜索,输出最短路径)
- 程序设计:迷宫的最短路径
- (广度优先搜索第一课)迷宫的最短路径 - BFS
- 城市最短路径问题--图的广度优先搜索
- 无权最短路径-广度优先搜索
- 最短路径算法-广度优先搜索
- 无权最短路径-广度优先搜索
- 广度优先搜索 最短路径 队列
- 广度优先搜索之最短路径
- 无权最短路径 广度优先搜索
- 第4章 学习Shader所需的数学基础(中)(矩阵)
- Android关于service中的耗时操作
- mac 安装ruby-2.4.1
- ViewRootImpl的独白,我不是一个View(布局篇)
- Latex语法
- 《挑战程序设计比赛》 P35 题目:迷宫的最短路径 广度搜索
- h3c 静态链路聚合及动态链路聚合
- NumPy基础:数组和矢量计算
- 基数排序
- 人脸识别
- iOS——WebViewJavascriptBridge实现OC与JS交互
- 查看Linux磁盘及内存占用情况
- [整理]在Spring MVC中使用Quartz实现定时任务动态管理
- 访问者模式