程式設計與演算法(二)第八周測驗 1 紅與黑

2021-08-31 03:57:08 字數 1206 閱讀 2544

總時間限制: 

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...