poj——3894 迷宫问题
来源:互联网 发布:淘宝详情页图片模板 编辑:程序博客网 时间:2024/05/02 00:45
水题,简单的BFS,不过也有很多人用DFS做,题意我就不说了,本身很明白!
用一个一维数组把搜到的点记下来,根据他们的父节点倒着输出来!
迷宫问题
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 8990 Accepted: 5317
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)
#include<stdio.h>#include<queue>#include<string.h>#include<algorithm>using namespace std;#define maxn 110int fx[4][2]={{0,-1},{0,1},{1,0},{-1,0}};int father[maxn][maxn];int visit[maxn][maxn];int map1[maxn][maxn];int dist[maxn][maxn];int short1[maxn];int sx=0,sy=0;int ex=4,ey=4;int n=5;void pt(){ int x=ex,y=ey; int j=0; for(;;) { short1[j++]=father[x][y]; int fx=father[x][y]/n; int fy=father[x][y]%n; if(fx==sx&&fx==sy) { break; } x=fx; y=fy; } int px,py; while(j--) { px=short1[j]/n; py=short1[j]%n; printf("(%d, %d)\n",px,py); } printf("(%d, %d)\n",ex,ey);}void bfs(int x,int y){ int u,v,nx,ny; u=x*n+y; queue<int> s; s.push(u); father[x][y]=-1; visit[x][y]=1; dist[x][y]=0; while(!s.empty()) { u=s.front(); s.pop(); x=u/n; y=u%n; for(int i=0;i<4;i++) { nx=x+fx[i][0]; ny=y+fx[i][1]; if(!visit[nx][ny]&&nx>=0&&nx<5&&ny>=0&&ny<5&&map1[nx][ny]==0) { visit[nx][ny]=1; dist[nx][ny]=dist[x][y]+1; father[nx][ny]=u; v=nx*n+ny; s.push(v); if(nx==ex&&ny==ey) { pt(); } } } }}int main(){ int i,j; for(i=0;i<5;i++) for(j=0;j<5;j++) scanf("%d",&map1[i][j]); bfs(0,0); return 0;}
0 0
- poj——3894 迷宫问题
- POJ—3984 迷宫问题
- poj 3894 迷宫问题
- POJ—3984(迷宫问题)
- poj 3984 迷宫问题 —— 典型搜索--DFS递归
- poj 3984 迷宫问题 —— 典型搜索--DFS递归
- BFS——POJ 3984 迷宫问题 解题题解
- poj(3984)——迷宫问题(输出路径)
- POJ——3984迷宫问题(BFS+回溯)
- poj 3984 迷宫问题
- poj 3984 迷宫问题
- POJ-3984-迷宫问题
- Poj 3984 迷宫问题
- 迷宫问题 poj 3984
- poj 3984迷宫问题
- poj 3984 迷宫问题
- POJ-3984-迷宫问题
- poj 3984- 迷宫问题
- js平滑滚动到头部、顶部以及指定位置
- 算法学习 - 图表示
- 用D语言解面试题1
- 我得开始写博客了
- [BestCoder] Round #9
- poj——3894 迷宫问题
- ETL介绍与ETL工具比较
- 关于greenDao的使用
- uva557(概率)
- 康威生命周期游戏的实现-python
- UIWebView---UIWebView和JavaScript交互
- 深圳南湾刨花板厂有几家呢
- Android sqlite db-journal文件的产生和原因
- 沙井刨花板哪家质量好呢