總時間限制:
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...