题目链接:
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=105&page=show_problem&problem=646
题目类型: 搜索
题目:
By filling a rectangle with slashes (/) and backslashes ( ), you can generate nice little mazes. Here is an example:
As you can see, paths in the maze cannot branch, so the whole maze only contains cyclic paths and paths entering somewhere and leaving somewhere else. We are only interested in the cycles. In our example, there are two of them.
Your task is to write a program that counts the cycles and finds the length of the longest one. The length is defined as the number of small squares the cycle consists of (the ones bordered by gray lines in the picture). In this example, the long cycle has length 16 and the short one length 4.
题目大意翻译:
用斜线和反斜杠来填写一个矩形,您可以生成漂亮的小迷宫。这里有一个例子:
如上图,可以组成一个迷宫,斜线和反斜杠相当于是迷宫的墙,路径在迷宫中不能分支, 所以整个迷宫只包含循环路径封闭(无法走出迷宫),
还有的路径是通向迷宫外面的。
你的任务是写一个程序, 计算出所形成的迷宫有多少个封闭路径(循环路径),以及计算出其中最长的封闭路径有多长。
样例输入:
6 4\//\\/\///\///\\/\\/\///3 3///\//\\\0 0
样例输出:
Maze #1: 2 Cycles; the longest has length 16. Maze #2: There are no cycles.
分析与总结:
初看这题时,有点无所适从,主要是所给的图像并不是按常规、方格是斜着放的,这样的话,比较难转换成用数组来存。
后来,我发现题目所给的斜杆的长度是一个格子长的两倍,于是,便很自然的想到把原来的图像扩大两倍,在数组中用两个格子来存储一根斜线。
这样的话,就可以用数组来表示这个图像。
转换后的图如下(画得有点搓)
其中,五角星代表的格子数组中是空的(可以用一个符号来表示),这些格子是可以走的。
转换后,就可以很简单的用搜索做出这道题了。
其中需要注意的地方: 搜索时,可以往8个方向走,其中,往上、下、左、右走时,如果那个格子为空的,那么就可以直接走过去。
但是如果往斜着方向走时,仅仅是空的还不足以判断可以走,还需要再特判。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数组
, 迷宫
, 路径
, 队列 迷宫
, 迷宫求解
, 迷宫路径输出问题
, 小迷宫
, The
, C语言走迷宫游戏
, 迷宫地牢
, 斜线
, 斜着移动
格子
恶魔迷宫evilmaze攻略、恶魔迷宫evilmaze下载、性迷宫maze、恶魔迷宫devilmaze、淫魔迷宫 evil maze,以便于您获取更多的相关知识。