[POJ 3984] 迷宫问题(BFS最短路径的记录和打印问题)
题目链接:http://poj.org/problem?id=3984
宽度优先搜索最短路径的记录和打印问题
1 #include<iostream> 2 #include<queue> 3 #include<cstring> 4 #include<cstdio> 5 using namespace std; 6 7 bool maze[5][5]; 8 int go[4][2] = {0,1,0,-1,1,0,-1,0}; 9 struct node 10 { 11 int x,y; 12 int prex,prey; 13 }path[5][5],temp; 14 15 void bfs() 16 { 17 queue<node> Q; 18 node temp; 19 int nx,ny; 20 path[0][0].x=path[0][0].y=0; 21 Q.push(path[0][0]); 22 while(!Q.empty()) 23 { 24 temp = Q.front(); 25 Q.pop(); 26 if(temp.x==4&&temp.y==4) 27 return; 28 for(int i=0;i<4;i++) 29 { 30 nx = temp.x + go[i][0]; 31 ny = temp.y + go[i][1]; 32 if(nx>=0&&nx<5&&ny>=0&&ny<5&&!maze[nx][ny]) 33 { 34 path[nx][ny].x = nx; 35 path[nx][ny].y = ny; 36 path[nx][ny].prex = temp.x; 37 path[nx][ny].prey = temp.y; 38 maze[nx][ny] = 1; 39 Q.push(path[nx][ny]); 40 } 41 } 42 } 43 } 44 45 void print_path(int x,int y) 46 { 47 if(x==0&&y==0) 48 { 49 cout<<"("<<path[0][0].x<<", "<<path[0][0].y<<")"<<endl; 50 return ; 51 } 52 int px = path[x][y].prex; 53 int py = path[x][y].prey; 54 print_path(px,py); 55 cout<<"("<<path[x][y].x<<", "<<path[x][y].y<<")"<<endl; 56 } 57 int main() 58 { 59 for(int i=0;i<5;i++) 60 for(int j=0;j<5;j++) 61 scanf("%d",&maze[i][j]); 62 bfs(); 63 print_path(4,4); 64 return 0; 65 }
转载于:https://www.cnblogs.com/youpeng/p/10245694.html
[POJ 3984] 迷宫问题(BFS最短路径的记录和打印问题)相关推荐
- poj 3984 迷宫问题 BFS
/* 题目: 求最少时间从(0,0)走到(4,4)的路径 分析: 纯粹BFS题目,不过需要打印路径,可以用数组记录当前的坐标的上一个坐标, 因为BFS构造出一棵BFS最优生成树,每一个节点的父母节点都 ...
- POJ 3984 迷宫问题 BFS求最短路线+路径记录
迷宫问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 31050 Accepted: 17826 Descriptio ...
- POJ 3984 迷宫问题 BFS DFS两种解法
题目地址:点这里 迷宫问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18495 Accepted: 10947 Descr ...
- 【POJ3126 Prime Path】【POJ 3087 Shuffle'm Up】【UVA 11624 Fire!】【POJ 3984 迷宫问题】
POJ3126Prime Path 给定两个四位素数a b,要求把a变换到b 变换的过程要 每次变换出来的数都是一个 四位素数,而且当前这步的变换所得的素数 与 前一步得到的素数 只能有一个位 ...
- POJ 3984 迷宫问题 (Dijkstra)
迷宫问题 Description 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, ...
- (简单) POJ 3984 迷宫问题,BFS。
Description 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, ...
- POJ 3984 迷宫问题
定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0, ...
- K - 迷宫问题 POJ - 3984
K - 迷宫问题 POJ - 3984 5*5迷宫,输出从(0,0)走到(4,4)的最短路径 类似康托,自己弄个一一对应的公式即可 #include<iostream> #include& ...
- c语言oj题1923偶数之和,问题 1923: [蓝桥杯][算法提高VIP]学霸的迷宫 (BFS)
题目描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...
- (FZU-2285-迷宫寻宝)BFS最短路径问题
题目网址:http://acm.fzu.edu.cn/problem.php?pid=2285 Problem 2285 迷宫寻宝 Accept: 276 Submit: 1040 Time Limi ...
最新文章
- laravel中Crypt加密方法
- 2021年云南高考查询成绩时间,2021年云南高考成绩排名及成绩公布时间 什么时候出来...
- Redis-3.2主从复制与集群搭建
- python xlwt模块使用_Python xlwt模块使用代码实例
- 想读Spring源码?先从这篇「 极简教程」开始吧...
- 数据结构基础(18) --哈希表的设计与实现
- Stringlifier:Adobe 开源日志清理和凭据暴露检测工具
- Spring→事务、隔离级别、事务传播行为、编程式事务控制、XML配置声明式事务(原始方式)、XML配置声明式事务(基于tx/aop)、@注解配置声明式事务、优势总结
- vue学习(9)-路由守卫
- php通用编码,php字符串怎么转换编码
- ps制作计算机考试证件照,如何通过PS制作一寸证件照(超详细流程)?
- mm,mil,inch,um的转换关系
- ABP框架----写一个WebAPI
- 177、模拟行走机器人
- Latex:大于等于号和小于等于号
- 深度学习笔记:01快速构建一个手写数字识别系统以及张量的概念
- 海信IP202H盒子破解方法
- Excel保护工作表了为什么就筛选不了了
- tar.zst 文件格式解压
- RAAVPPSPSLSRHSSPHQSEDEEE
热门文章
- 标题决胜武器:标题常用的14个套路
- 《我也能做CTO之程序员职业规划》之三:曲线定律
- operator 模块详解
- java chatat delete,StringBuffer deleteCharAt(int index)
- boost安装_Boost编译与使用
- 64位 setupdienumdeviceinterfaces_win7 32位重装系统详细教程
- java 对象与引用_Java --对象引用与对象的区别
- 力扣-547 省份数量
- Android开发—文字自动轮播实现
- Android BroadcastReceiver(二)