水池數目 C 深度搜尋 C

2021-10-09 02:00:16 字數 899 閱讀 4040

校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算機算出該地圖中共有幾個水池。

輸入第一行輸入乙個整數n,表示共有n組測試資料

每一組資料都是先輸入該地圖的行數n(0輸出

輸出該地圖中水池的個數。

要注意,每個水池的旁邊(上下左右四個位置)如果還是水池的話的話,它們可以看做是同乙個水池。

本題不管是深度搜尋還是寬度搜尋都能夠完成,重點是在於搜尋套路與細節處理,此處我應用的是深度搜尋

#include#includeusing namespace std;

#define endl '\n'

using ll=long long;

const size_t maxn = 101;

int a[maxn][maxn], book[maxn][maxn];//定義要檢索的圖(二維陣列a),和標記陣列book保證每個元素不被重複訪問

int fx[4][2] = ,,,

};//定義方向陣列,可移動的方位上下左右

void dfs(int x, int y)

}//深搜

int count()

}return area;

}

int main()

}int c = count();//輸出所標記區域數即水池數目

cout << c << endl;

}return 0;

}

牢記深度搜尋的套路

認真把握過程的細節

不斷檢測自己的**

比對同一題深搜與寬搜的區別

深度搜尋 NYOJ42 水池數目

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算機算出該地圖中共有幾個水池。輸入第一行輸入乙個整數n,表示共有n...

水池數目 C 寬度搜尋 佇列 遞迴

校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算機算出該地圖中共有幾個水池。輸入第一行輸入乙個整數n,表示共有n組測試資料 每一組資料都是先輸入該地圖的行數n 0輸出 輸出該地圖中水池的個數。要注...

DFS(深度優先搜尋) (C )

1 演算法用途 用於遍歷圖中的節點,有些類似於樹的深度優先遍歷。這裡唯一的問題是,與樹不同,圖形可能包含迴圈,因此我們可能會再次來到同一節點。2 基本思想 深度優先遍歷圖的方法是,從圖中某頂點v出發 1 訪問頂點v 2 依次從v的未被訪問的鄰接點出發,對圖進行深度優先遍歷 直至圖中和v有路徑相通的頂...