YTU.3148: 搜索基础之迷宫问题
来源:互联网 发布:大数据可视化工具 编辑:程序博客网 时间:2024/06/07 03:16
3148: 搜索基础之迷宫问题
时间限制: 1 Sec 内存限制: 128 MB提交: 29 解决: 12
[提交][状态][讨论版]
题目描述
定义一个二维数组:
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表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。
输入
一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。
输出
左上角到右下角的最短路径,格式如样例所示。
样例输入
0 1 0 0 00 1 0 1 00 0 0 0 00 1 1 1 00 0 0 1 0
样例输出
(0, 0)(1, 0)(2, 0)(2, 1)(2, 2)(2, 3)(2, 4)(3, 4)(4, 4)
AC代码:
#include <stdio.h>#define MAXN 5using namespace std;int arr[MAXN][MAXN];int frontt=0,rear=1;//队列头和尾struct node//设置节点属性{ int x;//横坐标 int y;//纵坐标 int pre;//用来表示每个元节点的前一个节点的下标,保存路径}q[100];int dx[4]={1,-1,0,0};//X方向上向左或者向右int dy[4]={0,0,-1,1};//Y方向上向下或者向上void print(int i)//处理输出结果,倒序输出{ if(q[i].pre!=-1) { print(q[i].pre); printf("(%d, %d)\n",q[i].x,q[i].y); }}void BFS(int x,int y)//广度优先搜索{q[frontt].x=x; //队列中的第一个元素的x坐标q[frontt].y=y; //队列中的第一个元素的y坐标q[frontt].pre=-1; //当前队列中的元素的前一个元素的下表此处没有前一个故设置为-1 while(frontt<rear)//队列中存在元素 { for(int i=0;i<4;i++) { int a,b; a=q[frontt].x+dx[i]; b=q[frontt].y+dy[i]; if(a<0||a>=5||b<0||b>=5||arr[a][b])//是否越界 continue; else { arr[a][b]=1;//已走过 q[rear].x=a; q[rear].y=b; q[rear].pre=frontt; rear++;//入队 } if(a==4&&b==4)//输出标记过的元素 print(frontt); } frontt++;//出队 }}int main(){for(int i=0;i<MAXN;i++){for(int j=0;j<MAXN;j++){scanf("%d",&arr[i][j]);}}printf("(0, 0)\n");BFS(0,0);printf("(4, 4)\n");return 0;}
搜索基础题,注意搜索到结果后应该逆序输出,也就是先输出最开始经过的点的坐标,这里的输出格式需要注意一下,两个坐标中间有一个空格。
阅读全文
0 0
- YTU.3148: 搜索基础之迷宫问题
- YTU.3147: 搜索基础之棋盘问题
- 搜索之迷宫问题
- YTU.3149 搜索基础之马走日
- 搜索算法之迷宫问题
- 迷宫之深度搜索
- 搜索之走迷宫
- NOI 2.5基本算法之搜索 三维迷宫问题----分析
- C++搜索与回溯算法之迷宫问题
- C++广度优先搜索算法之迷宫问题
- YTU 3006: 迷宫问题(栈与队列)
- poj_3984_迷宫问题(搜索)
- 迷宫问题-广度优先搜索
- [搜索] POJ 3984 迷宫问题
- 迷宫问题-广度优先搜索
- 广度优先搜索:迷宫问题
- 堆栈解决迷宫搜索问题
- POJ3984迷宫问题(搜索)
- 欢迎使用CSDN-markdown编辑器
- fine-tuning:利用已有模型训练其他数据集
- 有限域上的逆运算
- 根据后序和中序遍历输出先序遍历
- Util --poi完整导出
- YTU.3148: 搜索基础之迷宫问题
- 二进制协议和文本协议
- Codeforces Round #877 (Div. 2) D. Olya and Energy Drinks
- Spring的声明式事务管理<tx:advice/> 有关的设置
- Cas单点登录(5)数据库验证用户之自定义密码加密
- ssm整合注解事物
- rsync: failed to connect to 192.168.19.160: No route to host (113)
- Android 屏幕旋转
- js在线生成二维码