總時間限制:
1000ms
記憶體限制:
65536kb
描述有一間長方形的房子,地上鋪了紅色、黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。
輸入包括多個資料集合。每個資料集合的第一行是兩個整數w和h,分別表示x方向和y方向瓷磚的數量。w和h都不超過20。在接下來的h行中,每行包括w個字元。每個字元表示一塊瓷磚的顏色,規則如下
1)『.』:黑色的瓷磚;
2)『#』:白色的瓷磚;
3)『@』:黑色的瓷磚,並且你站在這塊瓷磚上。該字元在每個資料集合中唯一出現一次。
當在一行中讀入的是兩個零時,表示輸入結束。
輸出對每個資料集合,分別輸出一行,顯示你從初始位置出發能到達的瓷磚數(記數時包括初始位置的瓷磚)。
樣例輸入
6 9樣例輸出....#.
.....#
......
......
......
......
......
#@...#
.#..#.
0 0
45
#include #include const int maxn=30;
int sum;
int a[maxn][maxn];//判斷該點是否遍歷過
char c[maxn][maxn];//儲存方塊的顏色
void dfs(int i,int j)//深搜
sum++;//計算黑方塊數
a[i][j]=1;//標誌已經遍歷過了
dfs(i-1,j);//上遞迴
dfs(i,j+1);//右遞迴
dfs(i+1,j);//下遞迴
dfs(i,j-1);//左遞迴
}int main()
//結束條件
sum=0;//可能會不止一波
memset(a,0,sizeof(a));//初始化a,要有#include memset(c,'#',sizeof(c));//同上
for(i=0;ifor(i=0;i}
} dfs(b,d);
printf("%d\n",sum); }
return 0;
}
python第八周小測驗 Python小測試 9
精品 第八周1.在python 3.4 中,下列哪些是集合的有效表示方法?set set 1,2,3 2.假設s和 t表示已經定義好的兩個集合,x是 s集合中的某個元素,問以下哪些方法可以改變集合 s的值?s.symmetric difference update t s.intersection ...
python第八周小測驗 Python小測試 9
第八周1.在 python 3.4 中,下列哪些是集合的有效表示方法?set set 1,2,3 2.假設s和 t表示已經定義好的兩個集合,x是 s集合中的某個元素,問以下哪些方法可以改變集合 s的值?s.symmetric difference update t s.intersection up...
mooc c語言第八周程式設計
2 統計使用者輸入 4分 題目內容 從鍵盤讀取使用者輸入直到遇到 字元,編寫程式統計讀取的空格數目 讀取的換行符數目以及讀取的所有其他字元數目。要求用 getchar 輸入字元 程式執行結果示例1 please input a string end by abc def jklm op zkm sp...