#LAISIR54. 孤島探險 II(Island Exploration II)
孤島探險 II(Island Exploration II)
🏝️ 題目名稱:孤島探險 II(Island Exploration II)
【題目描述】
你獲得了一張巨大的地圖,地圖由 . 和 # 組成,代表海洋與陸地。
地圖的大小為 N × M。若兩個陸地格(#)在上下左右四個方向中有一個相鄰,則它們屬於同一座島嶼。
請你計算整張地圖中共有多少座互不相連的島嶼。
【輸入格式】
輸入的第一行包含兩個整數 N 和 M,分別表示地圖的行與列。
接下來的 N 行,每行包含 M 個字符,只包含 . 和 #。
【輸出格式】
輸出一個整數,表示地圖中島嶼的總數。
【數據範圍】
1 ≤ N, M ≤ 2000
地圖總格數 N × M 最多可達 4,000,000(四百萬)。
你需要在合理時間內完成計算。
請注意避免重複搜尋與過深遞迴導致的棧溢出。
【樣例輸入】
5 7
.#.....
.###..#
..#..##
...####
.......
【樣例輸出】
2
【樣例說明】
這張地圖中有兩座島嶼。 第一座在左上角,第二座位於右方連成一片。 程式必須能在面對數百萬格的輸入時仍高效計算。
Related
In following homework: