BFS 矩陣中「相鄰」元素的個數

2021-09-13 08:59:41 字數 693 閱讀 5858

問題概述:

給出乙個n×m矩陣,對於矩陣元素(x,y)稱其上下左右四個位置(x,y+1),(x,y-1),(x+1,y),(x-1,y)是「相鄰」的。如果乙個矩陣的元素中只有0,1,若有若干個1是相鄰的,則這些1就構成了乙個「塊」,求矩陣中塊的個數。

例如:6×7矩陣中,塊的個數為4

0 1 1 1 0 0 1

0 0 1 0 0 0 0

0 0 0 0 1 0 0

0 0 0 1 1 1 0

1 1 1 0 1 0 0

1 1 1 1 0 0 0

**:

#include#includeusing namespace std;

const int maxn=100;

struct nodenode;

int n,m;//矩陣大小為n ×m

int martix[maxn][maxn];//01矩陣

bool inq[maxn][maxn]=; //判斷是否進入過佇列

int x[4]=;

int y[4]=;//注意x和y的對應關係

bool judge(int x,int y)

void bfs(int x,int y)

} }}int main()

}

BFS 求給定的矩陣中「塊」的個數

給出乙個 m n 的矩陣,矩陣中的元素為 0 或 1。稱位置 x,y 與其上 下 左 右四個位置是相鄰的。如果矩陣中有若干個 1 是相鄰的 不必考慮兩兩相鄰 那麼稱這些 1 構成了乙個 塊 求給定矩陣中 塊 的個數。4思路 對於矩陣 matrix m n 遍歷每個元素,如果為0,則跳過 如果為 1 ...

交換鍊錶中相鄰的元素

成對交換鍊錶中相鄰的元素 直接交換鍊錶中兩個元素值,給元素交換賦值,而不用改變指標方向 但是這種方法中當單個節點中有很多欄位的時候 比如 name,age,效率較低!package suanfa.warppairs description 兩兩交換鍊錶中相鄰節點 通過直接交換元素值,不改變指標方向的...

BFS寬搜模板(求矩陣中連通塊的個數)

給出乙個n m的矩陣,元素為0或1.稱每個位置的上下左右與之相鄰。如果矩陣中有若干個1是相鄰的,那麼這些1就構成了乙個塊。求矩陣中 塊 的個數。include include include include include include using namespace std typedef lo...