poj 3984迷宫问题(bfs加打印路径)
来源:互联网 发布:sql注入电子书 编辑:程序博客网 时间:2024/04/30 02:34
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,
0, 0, 0, 1, 0,
};
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。
Input
一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。
Output
左上角到右下角的最短路径,格式如样例所示。
Sample Input
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
Sample Output
(0, 0)
(1, 0)
(2, 0)
(2, 1)
(2, 2)
(2, 3)
(2, 4)
(3, 4)
定义一个二维数组:
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,
};
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。
Input
一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。
Output
左上角到右下角的最短路径,格式如样例所示。
Sample Input
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
Sample Output
(0, 0)
(1, 0)
(2, 0)
(2, 1)
(2, 2)
(2, 3)
(2, 4)
(3, 4)
(4, 4)
解题思路:本题如果不写路径就是一道简单bfs题,打印路径本题是从后往前打,详情见代码:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;int vis[10][10],Map[10][10];int head,tot;int dx[4] = {0,1,-1,0};int dy[4] = {1,0,0,-1};struct node{ int x; int y; int pre;}num[1100];void print(int n){ if(num[n].pre != -1){ print(num[n].pre); printf("(%d, %d)\n",num[n].x,num[n].y); } return;}void bfs(){ //注意区分head和tot,前一个表示每一步,后一个表示有多少种尝试 tot = 0; head = 0; num[tot].x = 0,num[tot].y = 0,num[tot++].pre = -1; while(head < tot) { for(int i=0;i<4;i++) { int m = num[head].x + dx[i]; int n = num[head].y + dy[i]; if(m >= 5 || n >= 5 || m < 0 || n < 0 || Map[m][n] == 1) continue; Map[m][n] = 1; num[tot].x = m; num[tot].y = n; num[tot].pre = head; tot++; if(m == 4 && n==4) print(head); } head++; }}int main(){ for(int i=0;i<5;i++) { for(int j=0;j<5;j++) scanf("%d",&Map[i][j]); } printf("(0, 0)\n"); bfs(); printf("(4, 4)\n"); return 0;}
0 0
- poj 3984迷宫问题(bfs加打印路径)
- POJ 3984 迷宫问题(bfs+打印路径)
- POJ-3984-迷宫问题(BFS打印路径)
- 迷宫问题bfs+打印路径
- bfs迷宫问题--打印路径
- POJ 3984 迷宫问题(bfs搜索,递归打印)
- poj 3984 迷宫问题(BFS+输出路径)
- POJ 3984:迷宫问题(BFS+路径记录)
- POJ 3984 迷宫问题 BFS 记录路径
- poj 3984 迷宫问题 bfs输出路径
- POJ 3984--迷宫问题【BFS && 记录路径】
- poj 3984 迷宫问题【bfs+输出路径】
- poj 3984 迷宫问题(BFS+输出路径)
- poj 3984 迷宫问题 【bfs + 路径记录】
- POJ 3984 迷宫问题 BFS+记录路径
- POJ 3984 迷宫问题 【BFS+路径记录】
- 【BFS+保存路径】POJ 3984 迷宫问题
- poj 3984 迷宫问题 BFS+路径记录
- 使用Eclipse基于Maven使用Java开发WordCount程序项目
- Vmware 虚拟机下安装ubuntu14 操作系统
- mongodb搭建校内搜索引擎——网页文本的规范化
- 生产环境 JDK6 升级 JDK8
- 8.Masonry的使用方法
- poj 3984迷宫问题(bfs加打印路径)
- ListView适配器和监听器
- pyhon3.4 requests模块模拟post登陆csdn
- hdu 1512 Monkey King
- [BZOJ4300] 绝世好题
- 最新 Sublime Text3 激活码 (Build 3114 有效)
- latex初探
- 《Qt5学习笔记4》QHBoxLayout和QVBoxLayout
- BZOJ 4264: 小C找朋友|Hash