测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A70636. 红与黑

编程题 入门

题目描述

有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向上下左右四个方向的相邻的黑色瓷砖移动。

请写一个程序,计算你总共能够到达多少块黑色的瓷砖。

输入格式

第一行是两个整数 WH,分别表示 x 方向和 y 方向瓷砖的数量。WH 都不超过 20

在接下来的 H 行中,每行包括 W 个字符。每个字符表示一块瓷砖的颜色,规则如下:

1).:黑色的瓷砖;

2)#:红色的瓷砖;

3)@:黑色的瓷砖,并且你站在这块瓷砖上。该字符唯一出现一次。

输出格式

输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。

输入输出样例

输入 #1
6 9 
....#. 
.....# 
...... 
...... 
...... 
...... 
...... 
#@...# 
.#..#.
输出 #1
45

说明/提示

## 思路

「红与黑」用广度优先搜索求最少步:队列分层扩展。

## 步骤

1. 读入地图或状态。
2. 起点入队,BFS 扩展未访问邻居。
3. 到达终点时输出步数。