【題目描述】
有一間長方形的房子,地上鋪了紅色、黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。
【輸入】
包括多組資料。每組資料的第一行是兩個整數w和h,分別表示x方向和y方向瓷磚的數量。w和h都不超過20。在接下來的h行中,每行包括w個字元。每個字元表示一塊瓷磚的顏色,規則如下:
1)『.』:黑色的瓷磚;
2)『#』:白色的瓷磚;
3)『@』:黑色的瓷磚,並且你站在這塊瓷磚上。該字元在每組資料中唯一出現一次。
當在一行中讀入的是兩個零時,表示輸入結束。
【輸出】
對每組資料,分別輸出一行,顯示你從初始位置出發能到達的瓷磚數(記數時包括初始位置的瓷磚)。
【輸入樣例】
6 9…#.…#…
…………
#@…#
.#…#.
0 0【輸出樣例】
45【心得】本題實質是計數,無需儲存搜尋狀態,找到符合條件的格仔,計數,同時標記保證再次訪問時不重複計數。
【ac**】
#include#include#includeusing namespace std;
int w,h,dir[4][2]=,,,},cnt,vis[25][25];
char s[25][25];
void dfs(int x,int y)
}} dfs(x,y);
cout<} return 0;
}
資訊學奧賽一本通C 語言 1216 紅與黑
題目描述 有一間長方形的房子,地上鋪了紅色 黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。輸入 包括多個資料集合。每個資料集合的第一行是兩個整數w和h,分別表示x方向和y方向瓷磚的數量。w和h都不超過20。在接下來的...
資訊學奧賽一本通 紅與黑
演算法標籤 dfs,flood fill 題目描述 有一間長方形的房子,地上鋪了紅色 黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰 上下左右四個方向 的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。輸入格式 輸入包括多個資料集合。每個資料集合的第一行是兩個整數 ...
資訊學奧賽一本通 小球(drop)
許多的小球乙個乙個的從一棵滿二叉樹上掉下來組成fbt full binary tree,滿二叉樹 每一時間,乙個正在下降的球第乙個訪問的是非葉子節點。然後繼續下降時,或者走右子樹,或者走左子樹,直到訪問到葉子節點。決定球運動方向的是每個節點的布林值。最初,所有的節點都是false,當訪問到乙個節點時...