總結:
本體考慮用dfs解決問題時,發現了兩個之前並沒在意的錯因,第乙個便是在編寫搜尋函式時,對於搜尋的條件並沒有設定,導致沒有編譯通過,程式報錯,以本題為例,遞迴終止條件自然不用多說,即是否越界,而搜尋之前,須先判斷當前位置是否為細胞數字,是的話,才去搜尋,否則不搜;前幾次編譯的時候,就因為沒有設定該條件,導致程式無法執行,直接終止了。第二個便是一直忽略的錯誤,比如去列舉搜尋四個方向時,注意觀察一下兩個程式的區別,此處細節直接決定成敗!
方向1:(程式錯誤展示)
int dx[4]=;
int dy[4]=;
void dfs(int x,int y)
}執行程式發現,編譯不通過!!!!錯誤,以下正解;
方向2:(程式正確展示)
void dfs(int x,int y)
}
洛谷P1451 求細胞數量
一矩形陣列由數字0到9組成,數字1到9代表細胞,細胞的定義為沿細胞數字上下左右若還是細胞數字則為同一細胞,求給定矩形陣列的細胞個數。1 m,n 100 輸入格式 輸入 整數m,n m行,n列 矩陣輸出格式 輸出 細胞的個數 輸入樣例 1 複製 4 10 0234500067 1034560500 2...
洛谷P1451 求細胞數量
一矩形陣列由數字0到9組成,數字1到9代表細胞,細胞的定義為沿細胞數字上下左右若還是細胞數字則為同一細胞,求給定矩形陣列的細胞個數。如上圖所示,該矩陣可以劃分為4個細胞。對該矩陣進行掃瞄,如果當前元素不為0,細胞個數加1,然後對其四個方向進行遞迴,然後將當前元素置為0。這樣子通過兩重迴圈就可以找到矩...
洛谷P1451 求細胞數量
洛谷p1451 求細胞數量 題目描述 一矩形陣列由數字0到9組成,數字1到9代表細胞,細胞的定義為沿細胞數字上下左右若還是細胞數字則為同一細胞,求給定矩形陣列的細胞個數。1 m,n 100 輸入格式 輸入 整數m,n m行,n列 矩陣輸出格式 輸出 細胞的個數 輸入輸出樣例 輸入 1 4 10 02...