POJ 【3984】 迷宫问题
来源:互联网 发布:淘宝内衣模特摄影 编辑:程序博客网 时间:2024/06/05 01:59
迷宫问题
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 13874 Accepted: 8284
Description
定义一个二维数组:
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。
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 00 1 0 1 00 0 0 0 00 1 1 1 00 0 0 1 0
Sample Output
(0, 0)(1, 0)(2, 0)(2, 1)(2, 2)(2, 3)(2, 4)(3, 4)(4, 4)
Source
#include <cstdio>#include <cstring>#include <iostream>#include <queue>#include <stack>using namespace std;const int maxn = 10;int maze[maxn][maxn];int dir[4][2] = {{1,0},{-1,0},{0,1},{0,-1}};struct Node{ int x,y;}fa[maxn][maxn];void bfs(){ queue <Node> que; while(!que.empty()) que.pop(); Node pre,cur; pre.x = 0; pre.y = 0; que.push(pre); maze[0][0] = 1; while(!que.empty()) { pre = que.front(); que.pop(); if(pre.x == 4 && pre.y == 4) return; for(int i = 0; i < 4; i++) { int x = pre.x + dir[i][0]; int y = pre.y + dir[i][1]; if(x < 0 || x >= 5 || y < 0 || y >= 5) continue; if(!maze[x][y]) { maze[x][y] = 1; fa[x][y].x = pre.x; fa[x][y].y = pre.y; cur.x = x; cur.y = y; que.push(cur); } } }}int main(){ memset(fa,0,sizeof(fa)); memset(maze,0,sizeof(maze)); for(int i = 0; i < 5; i++) for(int j = 0; j < 5; j++) scanf("%d", &maze[i][j]); bfs(); stack <Node> S; Node node; node.x = 4; node.y = 4; S.push(node); while(node.x || node.y) { int x = node.x; int y = node.y; node.x = fa[x][y].x; node.y = fa[x][y].y; S.push(node); } while(!S.empty()) { node = S.top(); printf("(%d, %d)\n", node.x, node.y); S.pop(); } return 0;}
0 0
- poj 3984 迷宫问题
- poj 3984 迷宫问题
- POJ-3984-迷宫问题
- Poj 3984 迷宫问题
- 迷宫问题 poj 3984
- poj 3984迷宫问题
- poj 3984 迷宫问题
- POJ-3984-迷宫问题
- poj 3984- 迷宫问题
- POJ 3984 迷宫问题
- poj 3984 迷宫问题
- poj 3984:迷宫问题
- POJ-3984-迷宫问题
- POJ 3984 迷宫问题
- poj 3984迷宫问题
- POJ 3984 迷宫问题
- POJ 3984 迷宫问题
- poj 3984 迷宫问题
- 使用Log4j.jar写日志到文件
- Linux 开发工具 ---gcc makefile gdb
- SQL Server2008创建约束图解 唯一性约束
- 文字记录,对话吴恩达(Andrew Ng):超级大咖深度解析人工智能的发展现状与未来
- algrothm_逆序输出(最简洁+内部方法)
- POJ 【3984】 迷宫问题
- 输入流类(istream)常用成员函数
- 如何在WPF中实现类似Android的ProgressDialog效果
- Android Service
- Oracle-31-对视图DML操作
- “10倍效率”程序员/开发人员的习惯
- Git专题--服务端查看Git日志
- @Transation注解中的属性
- Android AsyncTask