求矩陣連通域的個數

2021-09-06 05:57:31 字數 1459 閱讀 9900

實際上是個寶石迷陣消除遊戲的簡化版,把不同顏色的寶石看成不同值的數字,然後連通超過三個的可以消除。這裡沒有加入消除後降落的機制,一定程度上簡化了問題的複雜度。那種需要每次消除後都從頭遍歷……

using

namespace std;

template

t &val(t *matrix, int w, int h, int i, int j)
int unguarded_count_area_size(int *matrix, bool *visit, int w, int h, int i, int j, int value)
val(visit, w, h, i, j) = true;
const

int left = unguarded_count_area_size(matrix, visit, w, h, i - 1, j, value);

const

int right = unguarded_count_area_size(matrix, visit, w, h, i + 1, j, value);

const

int top = unguarded_count_area_size(matrix, visit, w, h, i, j - 1, value);

const

int bottom = unguarded_count_area_size(matrix, visit, w, h, i, j + 1, value);

return left + right + top + bottom + 1;
}
int count_area(int *matrix, int w, int h)
bool *visit = new

bool[w * h];

int sum = 0;
memset(visit, 0, sizeof(bool) * w * h);
for (int j = 0; j < h; ++j)
}
delete visit;
return sum;
}
int main(int argc, char **argv)
;
cout << count_area((int *)data, 8, 3) << endl;
return 0;
}

求連通域面積matlab

matlab有自帶函式bwreopen 求連通域,並移除小面積連通域,返回乙個mask模板不同連通域用不同的label標誌,背景用0標誌。function mask bwareopenlz lig,minarea untitled3 此處顯示有關此函式的摘要 此處顯示詳細說明 row size li...

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

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

求01矩陣連通域大小(C 新華智雲筆試題)

涼了,so sad.十月份一直在整 的事兒,工作方面的東西沒看,題也沒做,結果就是碰到手撕 就掛qaq 也許碰到以前做過的型別題思路會好點,但是這個題也沒做過,就硬想,結果只想出了漏洞百出的思路。題目如下 問題描述 給定乙個m n的矩陣,裡面有數字1,0。然後給定乙個座標 x,y 請寫乙個程式計算與...