第一次完成DFS

http://acm.pku.edu.cn/JudgeOnline/problem?id=1164

 

題目求: 房間的個數  和  房間的最大面積。

 

思路:爲了調試看起來方便,用8表示牆,用0表示通路(當然房間區域也是可以走通的,所以也用0表示),用(2*row+1)*(2*column+1)的矩陣來表示(0 ≤ i ≤ 2*row ,0 ≤ j ≤ 2*column),當 i,j 都爲奇數時,點(i , j)表示房間區域, 其餘則爲牆或門。

 

心得:原先沒有想到還有這種情況:

3 3
3 2 6
1 0 4
9 8 12

經過調試發現,房間區域爲8了,但路上還是0,這樣就會引起重複計算,對dfs()做了修改:

while()里加了這句 room[i][j] == '0');
把這句  len++;   提到最前。

 

 附圖:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章