以下分別給出dfs和bfs實現方法
#include
#include
using
namespace std;
#define maxn 1000
#define ptf printf("\n");
#define here(a, b) printf("here here here (%d, %d)\n", a, b);
int n, m, num =0;
int g[maxn]
[maxn]=;
//01矩陣
int x[4]
=;//x,y的增量
int y[4]
=;bool vis[maxn]
[maxn]=;
//bool矩陣,初始都未被訪問為false
void
dfs(
int u,
int v)
//該元素的座標}}
intmain()
}}//output
// for(int i = 0; i < n; i++) //列印鄰接矩陣
//
// ptf;
// }
printf
("連通字塊個數:%d \n"
, num)
;return0;
}
#include
#include
using
namespace std;
#define maxn 1000
#define ptf printf("\n");
#define here(a, b) printf("here here here (%d, %d)\n", a, b);
struct node };
int n, m, num =0;
int g[maxn]
[maxn]=;
int x[4]
=;int y[4]
=;bool vis[maxn]
[maxn]=;
void
bfs(
int u,
int v)}}
}int
main()
}}//output
// for(int i = 0; i < n; i++) //列印鄰接矩陣
//
// ptf;
// }
printf
("連通字塊個數:%d \n"
, num)
;return0;
}
BFS識別矩陣中的塊數
題目描述 給出乙個m n的矩陣,矩陣中的元素為0或1.稱位置 x,y 與其上下左右四個位置是相鄰的。如果矩陣中有若干個1相鄰,則稱這些1構成了乙個塊。求給定矩陣中的塊數。輸入 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 ...
BFS 求給定的矩陣中「塊」的個數
給出乙個 m n 的矩陣,矩陣中的元素為 0 或 1。稱位置 x,y 與其上 下 左 右四個位置是相鄰的。如果矩陣中有若干個 1 是相鄰的 不必考慮兩兩相鄰 那麼稱這些 1 構成了乙個 塊 求給定矩陣中 塊 的個數。4思路 對於矩陣 matrix m n 遍歷每個元素,如果為0,則跳過 如果為 1 ...
標頭檔案algorithm中的常用函式
迴圈 對序列中的每個元素執行某操作 for each 查詢 在序列中找出某個值的第一次出現的位置 find 在序列中找出符合某謂詞的第乙個元素 find if 在序列中找出一子串行的最後一次出現的位置 find end 在序列中找出第一次出現指定值集中之值的位置 find first of 在序列中...