迷宫问题修改-保存路径输出
来源:互联网 发布:php教程百度云 编辑:程序博客网 时间:2024/05/01 07:49
迷宫问题
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 10318 Accepted: 6124
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<stdlib.h>#include<queue>using namespace std;struct N{int x,y,t;}List[100][100];bool ans[100][100];int maze[100][100];int go[][2]={-1,0,1,0,0,1,0,-1};queue<N> Q;int n,m;int BFS(int n,int m){while(Q.empty()==false){N now =Q.front();Q.pop();for(int i=0;i<4;i++){int a=now.x+go[i][0];int b=now.y+go[i][1];if(a<0||a>=n||b<0||b>=m) continue;if(ans[a][b]==true) continue;if(maze[a][b]==1)continue; N tmp;tmp.x=a;tmp.y=b;tmp.t=now.t+1;Q.push(tmp);List[a][b].x=now.x;List[a][b].y=now.y;ans[a][b]=true;if(a==n-1&&b==m-1)return tmp.t;}}return -1;}void print(int sx,int sy){if(sx==0&&sy==0){printf("(%d,%d)",sx,sy);return;}print(List[sx][sy].x,List[sx][sy].y);printf("(%d,%d)\n",sx,sy);}int main(){int n,m;while(scanf("%d%d",&n,&m)!=EOF){for(int i=0;i<n;i++)for(int j=0;j<m;j++){scanf("%d",&maze[i][j]);ans[i][j]=false;}while(Q.empty()==false) Q.pop();N tmp;tmp.x=tmp.y=tmp.t=0;ans[0][0]=true;Q.push(tmp);printf("%d\n",BFS(n,m));print(4,4);}system("pause");return 0;}
0 0
- 迷宫问题修改-保存路径输出
- 迷宫问题(输出路径)
- 【BFS+保存路径】POJ 3984 迷宫问题
- poj 3984 迷宫问题(BFS+输出路径)
- poj 3984 迷宫问题 bfs输出路径
- poj 3984 迷宫问题【bfs+输出路径】
- poj 3984 迷宫问题(BFS+输出路径)
- poj 3984 迷宫问题【dfs+路径输出】
- 迷宫问题(如何将走去迷宫的路径输出?)
- POJ NO.3984 迷宫问题(BFS,保存路径)
- POJ 3984 迷宫问题(BFS:迷宫最短路径且输出路径)
- POJ 3984---迷宫问题(BFS,迷宫最短路径且输出路径)
- poj3984--迷宫问题(输出最短路径BF…
- K - 迷宫问题 POJ 3984 BFS路径输出
- poj(3984)——迷宫问题(输出路径)
- POJ 3984:迷宫问题 bfs+递归输出路径
- POJ 3984 迷宫问题(BFS+路径输出)
- POJ - 3984 迷宫问题 (BFS+前缀处理输出路径)
- 图像绕某点旋转的矩阵的确定(getRotationMatrix2D函数解析)
- MySQL5.6.11安装步骤
- 谷歌自动驾驶再创纪录!够跑300年!
- 你肯定不知道的设计心理学原则和定律
- 递归工作原理
- 迷宫问题修改-保存路径输出
- QQ密码窃取器 2017邮箱收信版
- 初学javascript和php的感想
- 如何解决github安装失败 【转】
- 扶老奶奶过马路
- iOS 10.2.1第四次重生
- 430软复位方法
- 面试题:(考察Object.defineProperty(obj,prop,descriptor) 的get方法)
- Python3.5.2网络爬虫教程(1)