C 實現 紅與黑

2021-10-11 22:44:22 字數 1285 閱讀 9830

小明站在乙個矩形房間裡,這個房間的地面鋪滿了地磚,每塊地磚的顏色或是紅色或是黑色。小明一開始站在一塊黑色地磚上,並且小明從一塊地磚可以向上下左右四個方向移動到其他的地磚上,但是他不能移動到紅色地磚上,只能移動到黑色地磚上。

請你程式設計計算小明可以走到的黑色地磚最多有多少塊。

輸入

輸入包含多組測試資料。

每組輸入首先是兩個正整數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 提交 狀態 討論版 小明站在乙個矩形房間裡,這個房間的地面鋪滿了地磚,每塊地磚的顏色或是紅色或是黑色。小明一開始站在一塊黑色地磚上,並且小明從一塊地磚可以向上下左右四個方向移動到其他的地磚上,但是他不能移動到紅色地磚上,只能移動到黑...