小明站在乙個矩形房間裡,這個房間的地面鋪滿了地磚,每塊地磚的顏色或是紅色或是黑色。小明一開始站在一塊黑色地磚上,並且小明從一塊地磚可以向上下左右四個方向移動到其他的地磚上,但是他不能移動到紅色地磚上,只能移動到黑色地磚上。
請你程式設計計算小明可以走到的黑色地磚最多有多少塊。
輸入
輸入包含多組測試資料。
每組輸入首先是兩個正整數w和h,分別表示地磚的列行數。(1<=w,h<=20)
接下來h行,每行包含w個字元,字元含義如下:
『.』表示黑地磚;
『#』表示紅地磚;
『@』表示小明一開始站的位置,此位置是一塊黑地磚,並且這個字元在每組輸入中僅會出現乙個。
當w=0,h=0時,輸入結束。
輸出
對於每組輸入,輸出小明可以走到的黑色地磚最多有多少塊,包括小明最開始站的那塊黑色地磚。
樣例輸入
6 9…#.…#…
…………
#@…#
.#…#.
11 9
.#….#.#######.
.#.#…#.
.#.#.###.#.
.#.#…@#.#.
.#.#####.#.
.#…#.
.#########.
…11 6
…#…#…#…
…#…#…#…
…#…#…###
…#…#…#@.
…#…#…#…
…#…#…#…
7 7…#.#…
…#.#…
###.###
…@…###.###
…#.#…
…#.#…
0 0樣例輸出
4559613
**
#include
using
namespace std;
int w,h;
int starti,startj;
char room[25]
[25];
int cnt;
int sx[4]
=;int sy[4]
=;void
dfs(
int x,
int y)}}
intmain()
}}dfs(starti,startj)
; cout<}return0;
}
紅與黑問題(佇列實現)
有一間長方形的房子,地上鋪了紅色 黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。1.輸入乙個二維陣列,規則如下 1 1 代表黑色的瓷磚 2 0 代表紅色的瓷磚 2.輸入乙個起點 輸出所有聯通的瓷磚的位置以及瓷磚數量 ...
NOI2 5 1818 紅與黑 題解 C
1818 紅與黑 總time limit 1000ms memory limit 65536kb description 有一間長方形的房子,地上鋪了紅色 黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。input 包...
dfs入門 紅與黑
時間限制 1 sec 記憶體限制 32 mb 提交 10 解決 8 提交 狀態 討論版 小明站在乙個矩形房間裡,這個房間的地面鋪滿了地磚,每塊地磚的顏色或是紅色或是黑色。小明一開始站在一塊黑色地磚上,並且小明從一塊地磚可以向上下左右四個方向移動到其他的地磚上,但是他不能移動到紅色地磚上,只能移動到黑...