博客
关于我
迷宫寻路 (20 分)
阅读量:670 次
发布时间:2019-03-15

本文共 1555 字,大约阅读时间需要 5 分钟。

给定一个M行N列的迷宫图,其中 "0"表示可通路,"1"表示障碍物,无法通行。在迷宫中只允许在水平或上下四个方向的通路上行走,走过的位置不能重复走。**

**5行8列的迷宫如下:

0 1 1 1 0 0 0 00 0 0 1 0 0 0 00 1 0 0 0 1 0 00 1 1 1 0 1 1 01 0 0 0 0 0 0 0

则从左上角(1,1)至右下角(5,8)的最短路径为:

1,1–》2,1–》2,2–》2,3–》3,3–》3,4–》3,5–》4,5–》5,5–》5,6–》5,7–》5,8

题目保证每个迷宫最多只有一条最短路径。

请输出该条最短路径,如果不存在任何通路,则输出"NO FOUND".

输入格式:

第一行,输入M和N值,表示迷宫行数和列数。

接着输入M行数值,其中,0表示通路,1表示障碍物。每列数值用空格符间隔。

接下来可能输入多组迷宫数据。

当输入M的值为-1时结束输入。

输出格式:

按行顺序输出路径的每个位置的行数和列数,如 x,y

如果不存在任何路径,则输出"NO FOUND".

每组迷宫寻路结果用换行符间隔。

输入样例:

在这里给出一组迷宫。例如:

8 8    0 0 1 0 0 0 1 00 0 1 0 0 0 1 00 0 0 0 1 1 0 00 1 1 1 0 0 0 00 0 0 1 0 0 0 00 1 0 0 0 1 0 00 1 1 1 0 1 1 01 0 0 0 0 0 0 04 4    0 0 1 00 0 0 00 0 1 1 0 1 0 0-1 -1

输出样例:

在这里给出相应的输出。例如:

1,12,13,14,15,15,25,36,36,46,57,58,58,68,78,8NO FOUND
#include
#include
using namespace std;const int N=110,inf=0x3f3f3f3f;int dist[N][2],path[N][2],m,n,minn;//dist存的是最短路径的x,y path存的是当前路径的x,yint dx[4]={ 0,1,0,-1},dy[4]={ 1,0,-1,0};bool st[N][N],g[N][N],success;void dfs(int step,int x,int y){ if(step>minn)return;//如果当前步骤已经大于最小步数,结束搜索 if(x==n&&y==m) { memcpy(dist,path,sizeof dist); success=1; minn=step; return ; } for(int i=0;i<4;i++) { int tx=x+dx[i],ty=y+dy[i]; if(tx>=1&&tx<=n&&ty<=m&&ty>=1&&!g[tx][ty]&&!st[tx][ty]) { st[tx][ty]=1; path[step][0]=tx,path[step][1]=ty; dfs(step+1,tx,ty); st[tx][ty]=0; } }}int main(){ while(cin>>n>>m,~n) { for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>g[i][j]; success=0; minn=inf; st[1][1]=1; path[0][0]=1,path[0][1]=1; dfs(1,1,1); if(success) for(int i=0;i

转载地址:http://pvzqz.baihongyu.com/

你可能感兴趣的文章
Myeclipse常用快捷键
查看>>
MyEclipse更改项目名web发布名字不改问题
查看>>
MyEclipse用(JDBC)连接SQL出现的问题~
查看>>
mt-datetime-picker type="date" 时间格式 bug
查看>>
myeclipse的新建severlet不见解决方法
查看>>
MyEclipse设置当前行背景颜色、选中单词前景色、背景色
查看>>
Mtab书签导航程序 LinkStore/getIcon SQL注入漏洞复现
查看>>
myeclipse配置springmvc教程
查看>>
MyEclipse配置SVN
查看>>
MTCNN 人脸检测
查看>>
MyEcplise中SpringBoot怎样定制启动banner?
查看>>
MyPython
查看>>
MTD技术介绍
查看>>
MySQL
查看>>
MySQL
查看>>
mysql
查看>>
MTK Android 如何获取系统权限
查看>>
MySQL - 4种基本索引、聚簇索引和非聚索引、索引失效情况、SQL 优化
查看>>
MySQL - ERROR 1406
查看>>
mysql - 视图
查看>>