青少年编程知识记录 codecoming

【算法】走迷宫

【题目描述】

一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走。

给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到)。只能在水平方向或垂直方向走,不能斜着走。

【输入描述】

第一行是两个整数,R和C,代表迷宫的长和宽。( 1<= R,C <= 40)

接下来是R行,每行C个字符,代表整个迷宫。

空地格子用‘.’表示,有障碍物的格子用‘#’表示。

迷宫左上角和右下角都是‘.’。

【输出描述】

输出从左上角走到右下角至少要经过多少步(即至少要经过多少个空地格子)。计算步数要包括起点和终点。

【样例输入】

5 5  ..###  #....  #.#.#  #.#.#  #.#..

【样例输出】

9

标签: bfs

作者:亿万年的星光 分类:题解目录 浏览:

【算法】最短路径

【题目描述】

下图表示从城市A到城市H的交通图。从图中可以看出,从城市A到城市H要经过若干个城市。现在找出一条经过城市最少的一条路线。



【输入描述】

第一行一个整数n,表示几个城市。

接下来2~n+1行,表示两个城市之间的关系(能否直达)

【输出描述】

倒序输出城市最短线路中间用”-“隔开

【样例输入】

8  1 0 0 0 1 0 1 1   0 1 1 1 1 0 1 1   0 1 1 0 0 1 1 1   0 1 0 1 1 1 0 1  1 1 0 1 1 1 0 0   0 0 1 1 1 1 1 0  1 1 1 0 0 1 1 0  1 1 1 1 0 0 0 1

【样例输出】

H-F-A

标签: bfs

作者:亿万年的星光 分类:题解目录 浏览:

【算法】最少步数

【题目描述】

在各种棋中,棋子的走法总是一定的,如中国象棋中马走“日”。有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按“日”走,也能如象一样走“田”字。他的同桌平时喜欢下围棋,知道这件事后觉得很有趣,就想试一试,在一个(100×100)的围棋盘上任选两点A、B,A点放上黑子,B点放上白子,代表两匹马。棋子可以按“日”字走,也可以按“田”字走,俩人一个走黑马,一个走白马。谁用最少的步数走到左上角坐标为(1,1)的点时,谁获胜。现在他请你帮忙,给你A、B两点的坐标,想知道两个位置到(1,1)点可能的最少步数。

【输入描述】

A、B两点的坐标。

【输出描述】

最少步数

【样例输入】

12 16  18 10

【样例输出】

8  9

标签: dfsbfs

作者:亿万年的星光 分类:题解目录 浏览:

【题解】BFS—迷宫问题(1)

【题目描述】

一个5*5的矩阵,矩阵内用0,1显示。其中,0是路,表示这个点可以走,1是墙表示这个点不可以走。

问,从给定的矩阵中从左上角到右下角最少需要走多少步?

注:题目保证有解(不存在左上角和右下角为1的情况)

【输入描述】

一个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

【样例输出】

8

标签: bfs最短路径

作者:亿万年的星光 分类:题解目录 浏览: