6_14 Abbott的复仇(UVa816)<图的最短路BFS>
1999次世界总决赛的比赛包括一个骰子迷宫问题。在这个问题被写的时候,法官们无法发现骰子迷宫概念的原始来源。不久之后的比赛,但是,罗伯特先生雅培,无数的迷宫和对作者的创造者主题,联系大赛评委,自称是骰子迷宫的鼻祖。很遗憾,我们没有信用艾伯特他原来的概念在去年的问题陈述。但是我们很高兴地报告,Abbott先生提供了自己的专业知识,这一年他的原创大赛未穿过箭头迷宫。
例如大多数的迷宫,走过迷宫是被箭从交叉路口直到达到目标路口。由于每个路口从一个给定的方向接近,靠近路口的一个标志指示在哪个方向的交叉点可以退出。
这些方向总是左,向前或向右,或任何组合这些。
图1显示了一个通过箭头迷宫行走。交叉口是出(行,列)对,以左上为(1,1)。图1入口路口(3,1),和目标相交(3,3)。你开始迷宫由向北从(3,1)。当你走在(3,1)为(2,1),标志在(2,1)表明,当你接近(2,1)从南(向北行驶)你可以继续走了。继续前进会带你走向(1,1)。标志在(1,1)作为你的方法从南表明你可以退出(1,1)只有通过正确。这让你到东方步行从(1,1)向(1,2)。到目前为止还没有做出选择。同样的情况,当你继续从(1,2)到(2,2)到(2,3)到(1,3)。现在,然而,当你移动向西方(1,3)(1,2),你必须继续直或左转弯的选择。继续直将带你走向(1,1),向左,你会南(2,2)。实际的(独特的)这个迷宫求解下列顺序交叉:(3,1)(2,1)(1,1)(1,2)(2,2)(2,3)(1,3)(1,2)(1,1)(2,1)(2,2)(1,2)(1,3)(2,3)(3,3)。
你必须写一个程序来通过箭头走迷宫的有效解决。解一个迷宫就意味着(如果可能的话)找到一条穿过规定方向的迷宫的路径,并在目标中结束。这条路线不应该比必要的时间长,当然。

【输入】
输入文件将包含一个或多个箭头的迷宫。每个迷宫的描述的第一行包含迷宫的名字,这是不超过20个字符的字母数字字符串。下一行包含,在以下顺序中,起始行、起始列、起始方向、目标行,最后的目标列。所有被一个空格分隔。这个问题的最大尺寸为9,为9,因此所有行和列数字为9至1的单位数。
起始方向为北、南、东、西三个字符的字符之一,分别为。
迷宫的所有剩余的输入线都有这样的格式:2个整数,一个或多个字符组,和哨兵的星号,又都用一个空格分隔。整数代表行和列,一个迷宫的交叉路口。每个字符组表示该路口的一个标志。小组中的第一个字符是“氮”,“电子”或“瓦特”,以指示在什么方向的旅行的标志将被看到。例如,“”表示,这是在南部旅行时所看到的标志。(这是第一个方向的字符是一对三个箭头字符。这些可以是'升','福'或'的指示左,向前,和权利,分别。
在第一列中包含一个单一的零的行的列表的交点。下一行的输入开始下一个迷宫等。输入端是一行的“结束”这个词本身。
【输出】
对于每一个迷宫,输出文件应该包含一行名称的迷宫,然后由一个或多个线与一个解决方案的迷宫或短语'没有可能的解决方案。迷宫的名字应该在1列开始,和所有其他线路应在3列,即开始,缩进两个空格。解决方案应输出为一个列表的格式的交叉点(的),他们被访问的目标,应该由一个单一的空间分隔,所有的解决方案的最后一行应该包含10个交叉点。
注:
罗伯特秘密穿过箭头迷宫实际上是用于大规模的建设,而不是纸。虽然他的迷宫是未发表的,他们中的一些人实际上已建成。其中一个是在亚特兰大博物馆展出。其他人已经在过去两年的暑假里建造了美国迷宫公司。正如它们的名字所表明的这些迷宫都要走过。
为爱冒险,2图形罗伯特伦敦的亚特兰大的迷宫图。
即使你对整个迷宫有一个概要的解决,解决这个问题也是相当困难的。想象一下,如果你在迷宫中穿行,只看到了一个问题。
一个符号在一个时间!罗伯特雅培自己表明,迷宫太复杂,大多数人放弃之前整理。
没有放弃的人是唐纳德:他花了三十分钟解决迷宫。
图1:通过箭头MAZ以下示例中输入第一个迷宫图1例走迷宫。

Sample Input
SAMPLE
3 1 N 3 3
1 1 WL NR *
1 2 WLF NR ER *
1 3 NL ER *
2 1 SL WR NF *
2 2 SL WF ELF *
2 3 SFR EL *
0
NOSOLUTION
3 1 N 3 2
1 1 WL NR *
1 2 NL ER *
2 1 SL WR NFR *
2 2 SR EL *
0
END
Sample Output
SAMPLE
(3,1) (2,1) (1,1) (1,2) (2,2) (2,3) (1,3) (1,2) (1,1) (2,1)
(2,2) (1,2) (1,3) (2,3) (3,3)
NOSOLUTION
No Solution Possible
6_14 Abbott的复仇(UVa816)<图的最短路BFS>的更多相关文章
- 6-14 Abbott的复仇 uva816
我的第一题bfs 将方向固定 NESW 然后左转和右转就是+3和+1!!! 还有就是 建立一个数组 储存父节点 这样就可以往回打印出路径 打印的截至条件是 d[][][]==0时 说明到 ...
- 图的DFS和BFS(邻接表)
用C++实现图的DFS和BFS(邻接表) 概述 图的储存方式有邻接矩阵和邻接表储存两种.由于邻接表的实现需要用到抽象数据结构里的链表,故稍微麻烦一些.C++自带的STL可以方便的实现List,使算 ...
- 图的DFS与BFS
图的DFS与BFS(C++) 概述 大一学生,作为我的第一篇Blog,准备记录一下图的基本操作:图的创建与遍历.请大佬多多包涵勿喷. 图可以采用邻接表,邻接矩阵,十字链表等多种储存结构进行储存,这里为 ...
- Java数据结构——图的DFS和BFS
1.图的DFS: 即Breadth First Search,深度优先搜索是从起始顶点开始,递归访问其所有邻近节点,比如A节点是其第一个邻近节点,而B节点又是A的一个邻近节点,则DFS访问A节点后再访 ...
- [uva816]AbbottsRevenge Abbott的复仇(经典迷宫BFS)
这题思路就普通的BFS加上一个维度朝向,主要是要注意输入,输出,以及细节的处理 #include<cstdio> #include<cstring> #include<q ...
- UVA816 Abbott的复仇 Abbott's Revenge
以此纪念一道用四天时间完结的题 敲了好几次代码的出错点:(以下均为正确做法) memset初始化 真正的出发位置必须找出. 转换东西南北的数组要从0开始. bfs没有初始化第一个d 是否到达要在刚刚取 ...
- uva 816 Abbott的复仇
题目链接:https://uva.onlinejudge.org/external/8/816.pdf 紫书:P165 题意: 有一个最多包含9*9个交叉点的迷宫.输入起点.离开起点时的朝向和终点,求 ...
- 算法入门经典第六章 例题6-14 Abbott的复仇(Abbott's Revenge)BFS算法实现
Sample Input 3 1 N 3 3 1 1 WL NR * 1 2 WLF NR ER * 1 3 NL ER * 2 1 SL WR NF * 2 2 SL WF ELF * 2 3 SF ...
- UVa 816 Abbott的复仇(BFS)
寒假的第一道题目,在放假回家颓废了两天后,今天终于开始刷题了.希望以后每天也能多刷几道题. 题意:这道BFS题还是有点复杂的,给一个最多9*9的迷宫,但是每个点都有不同的方向,每次进入该点的方向不同, ...
随机推荐
- webpack, autoprefixer
可以通过postcss-loader 添加 const autoprefixer = require('autoprefixer'); ... { loader: 'postcss-loader', ...
- Latex字体属性
Latex字体有五种属性:编码.族.系列.尺寸.形状:其中,一般用户不会涉及字体的编码属性.用户可以自定义字体属性,定义属性的命令称为声明,声明无参数,直接在文档中使用.1. 族(family)属性: ...
- redis安装并设置开机启动
1.下载并上传redis安装包至linux服务器目录:/usr/local/redis. 2.解压:tar -zxvf redis-5.0.7.tar.gz 3.编译安装:make && ...
- 解决Maven依赖报红的批处理文件
maven经常因为网络或者其他原因导致仓库jar包下载不完整,导致jar包依赖报红,此小工具可以一键删除未下载完成文件 set REPOSITORY_PATH=E:\deplor\apache-mav ...
- javaScript入门(函数)
目录 JavaScript函数 函数是什么 函数返回值 return特点: 递归函数 匿名函数(anoymous) 自执行函数(通过匿名函数实现) 回调函数 闭包函数 构造函数 构造函数两大类 注意事 ...
- Django学习笔记4
Referto https://docs.djangoproject.com/zh-hans/2.2/intro/tutorial04/ Since we have the abstract conc ...
- js中的window.location.search的用法与作用。
用该属性获取页面 URL 地址: window.location 对象所包含的属性 属性 描述 hash 从井号 (#) 开始的 URL(锚) host 主机名和当前 URL 的端口号 hostnam ...
- ECMAScript基本语法——④变量
简介 变量:一小块存储数据的内存空间先申请了一块内存空间,规定空间的存储类型,给空间赋值3, 想找到这个3可以通过内存空间的地址值,但是通过地址值太麻烦了,给这个空间起了一个名字a 通过这个a可以找到 ...
- 在GPU上训练数据
在GPU上训练数据 模型搬到GPU上 数据搬到GPU上 损失函数计算搬到GPU上
- 服务器上搭建使用SSH账户登录的Git仓库
1.安装git yum install -y git 2.创建git仓库保存的目录 mkdir /data/git_repo 3.初始化空仓库 cd /data/git_repogit init -- ...