dfs之找連通塊

2021-09-29 21:50:35 字數 1021 閱讀 8145

#尋找連通塊

題目傳送門

題目的大致意思就是給你一張地圖,找到規定的字元所組成的連通塊的數量。

sample input

1 1*

3 5*@*@*

**@**

*@*@*

1 8@@****@*

5 5

****@

*@@*@

*@**@

@@@*@

@@**@

0 0

sample output01

22

這個題,我們找由@組成的連通塊的數量。這裡的連通塊的定義為以某點為中心,向周圍八個點擴散的都是和中心點連通的點。

這仍然是個dfs的題,當然,也有bfs的解法。

#include

#include

#include

#include

#include

#include

#include

using namespace std;

typedef

long

long ll;

const

int n=

1e3+5;

int n,m,ans=0;

char mp[n]

[n];

int flag[n]

[n];

//標記陣列

int c[8]

[2]=

,,,,

,,,}

;//方向陣列

void

dfs(

int x,

int y)}}

intmain()

}for

(int i=

1;i<=n;i++)}

} cout

(flag,0,

sizeof flag)

; ans=0;

}}

dfs求連通塊

遞迴是什麼?絕大部分人都會說 自己呼叫自己,剛開始我也是這樣理解遞迴的。確實沒錯,遞迴的確是自己呼叫自己。遞迴簡單的應用 編寫乙個能計算斐波那契數列的函式,也就是這樣 int fac int n 相信絕大部分人都能看懂這段 遞迴除了可以用自己呼叫自己這樣描述之外,還可以這樣表示遞迴函式 遞推式 邊界...

dfs的連通塊問題

01迷宮 連通塊 在搜尋的過程中,從開始的塊開始,它能走過的塊是連在一起的,即它們能夠走的最大距離是是相同的。所以在搜尋的過程中,我們要把走過的先連在一起,用個陣列儲存走過的每一塊,然後在搜尋的最後,對在陣列的每一塊賦值。include include using namespace std int...

dfs模板 dfs找聯通塊分割槽

題目描述 天文學家doctor博士發明了一種太空分割槽方法,在這個方法中,宇宙裡亮度相近的區域被劃為同乙個星區。空間中相鄰兩區域若亮度差不大於給定整數m,則這兩區域屬於同一星區。現給你乙個空間的三維座標圖,每個座標整點表示乙個區域,其值表示其亮度,而其上 下 左 右 前 後六個區域被認為是與其相鄰的...