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++; 提到最前。
附圖: