深度搜尋之紅與黑

2021-10-23 04:35:04 字數 1121 閱讀 8557

總時間限制: 

1000ms

記憶體限制: 

65536kb

描述有一間長方形的房子,地上鋪了紅色、黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。

輸入包括多個資料集合。每個資料集合的第一行是兩個整數w和h,分別表示x方向和y方向瓷磚的數量。w和h都不超過20。在接下來的h行中,每行包括w個字元。每個字元表示一塊瓷磚的顏色,規則如下

1)『.』:黑色的瓷磚;

2)『#』:白色的瓷磚;

3)『@』:黑色的瓷磚,並且你站在這塊瓷磚上。該字元在每個資料集合中唯一出現一次。

當在一行中讀入的是兩個零時,表示輸入結束。

輸出對每個資料集合,分別輸出一行,顯示你從初始位置出發能到達的瓷磚數(記數時包括初始位置的瓷磚)。

樣例輸入

6 9 

....#.

.....#

......

......

......

......

......

#@...#

.#..#.

0 0

樣例輸出

45
#include#include#include#includeusing namespace std;

char rooms[100][100];

int color[100][100];

int w=0,h=0;

int roomnum=0;

void dfs(int i,int k)

++roomnum;

color[i][k]=1;

if(k+1=0&&rooms[i][k-1]=='.') dfs(i,k-1);

if(i+1=0&&rooms[i-1][k]=='.') dfs(i-1,k);}

int main()

}}

memset(color,0,sizeof color);

roomnum=0;

dfs(ri,rj);

cout《其實就是城堡問題的變種,城堡問題需要全部對比一下哪個連通圖節點最多,而這個問題是直接告訴了起點即『@』。

Problem J 搜尋基礎之紅與黑

time limit 1 sec memory limit 128 mb submit 170 solved 100 submit status web board 有一間長方形的房子,地上鋪了白色 黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫乙個程式,計算你...

搜尋 1216 紅與黑

題目描述 有一間長方形的房子,地上鋪了紅色 黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。輸入 包括多個資料集合。每個資料集合的第一行是兩個整數w和h,分別表示x方向和y方向瓷磚的數量。w和h都不超過20。在接下來的...

深度優先搜尋之深度體驗

迷宮有n行m列的單元格組成 n和m都小於等於50 每個單元格內要麼是空地,要麼是障礙物。找到一條從迷宮的起點通往迷宮內任意一點的最短路徑。注意 障礙物是不能走的,也不能走到迷宮之外。include include int n,m,p,q,len,min 99999999 int a 51 51 bo...