dfs模板 dfs找聯通塊分割槽

2022-05-21 14:30:06 字數 846 閱讀 3192

題目描述

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

輸入第一行三個正整數x、y、z(x、y、z<=50),表示空間的長寬高。

第二行乙個整數m。

接下來為一行,x*y*z個0~255的整數,按照空間座標大小的順序由小到大依次給出每個區域的亮度。

說明:對於空間兩點p1(x1,y1,z1)和p2(x2,y2,z2),p1輸出

乙個整數,空間中的星區數量。

#include #define ll long long

using

namespace

std;

int num[55][55][55

];bool mp[55][55][55

];int

d;int

n,m,h;

int dx=;

int dy=;

int dz=;

bool check(int x,int y,int

z)void dfs(int x,int y,int z,int

p) }

}int

main()}}

int ent=0

;

for(int i=1;i<=n;++i)}}

}printf(

"%d\n

",ent);

return0;

}

DFS求聯通塊

題目 輸入乙個m行n列的字元矩陣,只要有兩個 相鄰就能組成乙個聯通塊,如下面的字元矩陣有2個聯通塊分析 將字元矩陣看作乙個圖,用dfs對圖中的字元遍歷,從每個 出發,遍歷 周圍的字元。每次訪問時給該位置打上塊標誌,表示已訪問,從而避免多次訪問同乙個位置。include include define ...

dfs之找連通塊

尋找連通塊 題目傳送門 題目的大致意思就是給你一張地圖,找到規定的字元所組成的連通塊的數量。sample input 1 1 3 5 1 8 5 5 0 0 sample output01 22這個題,我們找由 組成的連通塊的數量。這裡的連通塊的定義為以某點為中心,向周圍八個點擴散的都是和中心點連通...

學習記錄 DFS的聯通塊與計數 剪枝

1 include 2 using namespace std 3const int maxn 1000 4 intn,m 5 地圖尺寸 6int maap maxn 10 maxn 10 7 查詢零一地圖中的1聯通塊個數 8bool vis maxn 10 maxn 10 9 int direx ...