c++深度优先搜索(dfs)习题

c++深度优先搜索(dfs)习题


2024年5月11日发(作者:京东装机大师)

红与黑

题目描述

有一个矩形房间,覆盖正方形瓷砖。每块瓷砖涂成了红色或黑色。一名男子站在黑色的

瓷砖上,由此出发,可以移到四个相邻瓷砖之一,但他不能移动到红砖上,只能移动到黑砖

上。编写一个程序,计算他通过重复上述移动所能经过的黑砖数。

输入

开头行包含两个正整数W和H,W和H分别表示矩形房间的列数和行数,且都不超过20.

每个数据集有H行,其中每行包含W个字符。每个字符的含义如下所示:

'.'——黑砖

'#'——红砖

'@'——男子(仅出现一次)

输出

程序应该输出一行,包含男子从初始瓷砖出发可到达的瓷砖数

样例输入

6 9

....#.

.....#

......

......

......

......

......

#@...#

.#..#.

样例输出

45

迷宫问题

题目描述

设有一个N*N(2<=N<=10)方格的迷宫,入口和出口分别在左上角和右上角。迷宫格子中

分别放0和1,0表示可通,1表示不能,入口和出口处肯定是0.迷宫走的规则如下所示:即

从某点开始,有八个方向可走,前进方格中数字为0时表示可通过,为1时表示不可通过,

要另找路径。找出所有从入口(左上角)到出口(右上角)的路径(不能重复),输出路径

总数,如果无法到达,则输出0.

输入

第一行输入N,接下来输入N*N的矩阵

输出

输出路径总数

样例输入

3

0 0 0

0 1 1

1 0 0

样例输出

2

单词接龙

题目描述

单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一

个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两

次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一

条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at和atide间不能相

连。

输入

输入的第一行为一个单独的整数n(n<=20)表示单词数,以下n行每行有一个单词,输入的

最后一行为一个单个字符,表示“龙”开头的字母。你可以假定以此字母开头的“龙”一定

存在.


发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1715384292a2609936.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信