POJ 3984 迷宫问题 手写队列+BFS路径输出
来源:互联网 发布:建筑图纸设计软件 编辑:程序博客网 时间:2024/05/17 23:07
POJ 3984 迷宫问题 手写队列+BFS路径输出
传送门
定义一个二维数组:
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)
中文题面,不解释。不得不吐槽下这个题目的数据弱的吓死人。尽然只有一组样例的数据。样例对了,就能a,但是要想一下,实际地应该怎么写呢; 因为要输出路径,所以要递归输出坐标,嗯,对 还有手写队列。注意队列[l,r),是左闭右开的,入队就是r++,出队就是l++;
#include<iostream>#include<queue>#include<cstring>#include<cstdio>using namespace std;struct node{ int x,y; int pre;}q[105];int dir[4][2]={1,0,0,-1,-1,0,0,1};int mp[10][10];int l=0,r=1;void print(int f){ if(q[f].pre!=-1) print(q[f].pre); printf("(%d, %d)\n",q[f].x,q[f].y);}void bfs(){ q[l].x = 0; q[l].pre = -1; q[l].y = 0; while(l<r){ for(int i=0;i<4;i++){ int xx = q[l].x+dir[i][0]; int yy = q[l].y+dir[i][1]; if(xx<0||yy<0||xx>=5||yy>=5||mp[xx][yy]) continue; else { mp[xx][yy] = 1; q[r].x = xx; q[r].y = yy; q[r].pre = l; r++; } if(xx==4&&yy==4){ print(l); return ; } } l++; }}int main(){ for(int i = 0 ;i<5;i++){ for(int j = 0 ;j<5;j++){ cin>>mp[i][j]; } } bfs(); printf("(4, 4)\n"); return 0;}
阅读全文
0 0
- POJ 3984 迷宫问题 手写队列+BFS路径输出
- poj 3984 迷宫问题(BFS+输出路径)
- poj 3984 迷宫问题 bfs输出路径
- poj 3984 迷宫问题【bfs+输出路径】
- poj 3984 迷宫问题(BFS+输出路径)
- POJ-3984-迷宫问题-BFS(广搜)-手写队列
- poj 3984 迷宫问题 【BFS + 优先队列 + stack路径记录】
- K - 迷宫问题 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 + 路径记录】
- 文章标题
- 8.9 景观美化 2495
- 不能添加这些计数器 的解决方案
- oracle(三)
- Using InfluxDB in Grafana
- POJ 3984 迷宫问题 手写队列+BFS路径输出
- HDU 3974 Assign the task(DFS建树+线段树)
- 欢迎使用CSDN-markdown编辑器
- 【lower_bound】【upper_bound】二分查找
- 集训8.9
- 函数指针
- 匿名对象和匿名类
- [Codeforces 590E] Birthday
- 凸包模板