#尋找連通塊
題目傳送門
題目的大致意思就是給你一張地圖,找到規定的字元所組成的連通塊的數量。
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,則這兩區域屬於同一星區。現給你乙個空間的三維座標圖,每個座標整點表示乙個區域,其值表示其亮度,而其上 下 左 右 前 後六個區域被認為是與其相鄰的...