题目链接: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最短路径的记录和打印问题)相关推荐

  1. poj 3984 迷宫问题 BFS

    /* 题目: 求最少时间从(0,0)走到(4,4)的路径 分析: 纯粹BFS题目,不过需要打印路径,可以用数组记录当前的坐标的上一个坐标, 因为BFS构造出一棵BFS最优生成树,每一个节点的父母节点都 ...

  2. POJ 3984 迷宫问题 BFS求最短路线+路径记录

    迷宫问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 31050   Accepted: 17826 Descriptio ...

  3. POJ 3984 迷宫问题 BFS DFS两种解法

    题目地址:点这里 迷宫问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18495 Accepted: 10947 Descr ...

  4. 【POJ3126 Prime Path】【POJ 3087 Shuffle'm Up】【UVA 11624 Fire!】【POJ 3984 迷宫问题】

    POJ3126Prime Path 给定两个四位素数a  b,要求把a变换到b 变换的过程要 每次变换出来的数都是一个 四位素数,而且当前这步的变换所得的素数  与  前一步得到的素数  只能有一个位 ...

  5. 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, ...

  6. (简单) 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, ...

  7. 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, ...

  8. K - 迷宫问题 POJ - 3984

    K - 迷宫问题 POJ - 3984 5*5迷宫,输出从(0,0)走到(4,4)的最短路径 类似康托,自己弄个一一对应的公式即可 #include<iostream> #include& ...

  9. c语言oj题1923偶数之和,问题 1923: [蓝桥杯][算法提高VIP]学霸的迷宫 (BFS)

    题目描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...

  10. (FZU-2285-迷宫寻宝)BFS最短路径问题

    题目网址:http://acm.fzu.edu.cn/problem.php?pid=2285 Problem 2285 迷宫寻宝 Accept: 276 Submit: 1040 Time Limi ...

最新文章

  1. laravel中Crypt加密方法
  2. 2021年云南高考查询成绩时间,2021年云南高考成绩排名及成绩公布时间 什么时候出来...
  3. Redis-3.2主从复制与集群搭建
  4. python xlwt模块使用_Python xlwt模块使用代码实例
  5. 想读Spring源码?先从这篇「 极简教程」开始吧...
  6. 数据结构基础(18) --哈希表的设计与实现
  7. Stringlifier:Adobe 开源日志清理和凭据暴露检测工具
  8. Spring→事务、隔离级别、事务传播行为、编程式事务控制、XML配置声明式事务(原始方式)、XML配置声明式事务(基于tx/aop)、@注解配置声明式事务、优势总结
  9. vue学习(9)-路由守卫
  10. php通用编码,php字符串怎么转换编码
  11. ps制作计算机考试证件照,如何通过PS制作一寸证件照(超详细流程)?
  12. mm,mil,inch,um的转换关系
  13. ABP框架----写一个WebAPI
  14. 177、模拟行走机器人
  15. Latex:大于等于号和小于等于号
  16. 深度学习笔记:01快速构建一个手写数字识别系统以及张量的概念
  17. 海信IP202H盒子破解方法
  18. Excel保护工作表了为什么就筛选不了了
  19. tar.zst 文件格式解压
  20. RAAVPPSPSLSRHSSPHQSEDEEE

热门文章

  1. 标题决胜武器:标题常用的14个套路
  2. 《我也能做CTO之程序员职业规划》之三:曲线定律
  3. operator 模块详解
  4. java chatat delete,StringBuffer deleteCharAt(int index)
  5. boost安装_Boost编译与使用
  6. 64位 setupdienumdeviceinterfaces_win7 32位重装系统详细教程
  7. java 对象与引用_Java --对象引用与对象的区别
  8. 力扣-547 省份数量
  9. Android开发—文字自动轮播实现
  10. Android BroadcastReceiver(二)