OD统一考试 B卷 聚餐地点 or 欢乐的周末
题目
小华和小为是很好的朋友,他们约定周末一起吃饭,通过手机交流,他们在地图上选择了很多聚餐地点
(由于自然地形等原因,部分聚餐地点不可达),求小华和小为都能达到的聚餐地点有多少个。
输入
第一行输入 m
和 n
,m
表示地图长度,n
表示地图宽度
第二行开始具体输入地图信息,地图信息包括
0
为通畅的道路
1
为障碍物(且仅 1
为障碍物)
2
为小华或小为,地图中必定有且仅有两个(非障碍物)
3
为被选中的聚餐地点(非障碍物)
输出描述
可以两方都到达的聚餐地点的数量,行末无空格
示例一
输入
4 4
2 1 0 3
0 1 2 1
0 3 0 0
0 0 0 0
输出
2
说明
第一行输入地图的长宽为三和四
第二行开始为具体的地图,其中:
3
代表小华和小明的聚餐地点;
2
代表小华或小明(确保有两个);
0
代表可以通行的位置;
1
代表不可以出行的位置。
此时两者都能达到的聚餐位置有两处
备注
地图长宽为m
和n
,4 <= m <= 100
,4 <= n <= 100
聚餐的地点数量为k
,则1 < k <= 100
解题思路
使用广度优先搜索(BFS)算法思想来查找从起点到终点的路径
核心知识点
广度优先搜索 (BFS)
深度优先搜索 (DFS)
使用 map 函数处理字符串。
使用说明
参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。