有一間長方形的房子,地上鋪了紅色、黑色兩種顏色的正方形瓷磚。
你站在其中一塊黑色的瓷磚上,只能向相鄰(上下左右四個方向)的黑色瓷磚移動。
請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。
分析:1.特點是把從起點出發能到達的點全部放入佇列中,每個點只能入隊一次,出隊的時候將數目加一。就可以統計所有點連通的最大數目了。
2.使用陣列來模擬佇列需要注意陣列的大小為n*n,hh=0,tt=0 while(hh<=tt){}.
**:
#include #include #include using namespace std;
const int n=30;
#define x first
#define y second
typedef pairpii;
char g[n][n];
bool st[n][n];
pii q[n*n];
int res; //記錄連通塊的數目
int n,m;
int dx[4]=,dy[4]=;
void bfs(int sx,int sy)
; while(hh<=tt);}
}}int main()
cout<}
return 0;
}
NYOJ 水池數目(連通塊)
通過這題學習到求連通區塊的乙個很簡單的方法 記下來備查 該題的意思就是求有幾個互不相連的水池 水池與水池連在一起還是乙個水池 ac 如下 includeusing namespace std int map 105 105 void dfs int i,int j if map i j 1 if m...
dfs求連通塊
遞迴是什麼?絕大部分人都會說 自己呼叫自己,剛開始我也是這樣理解遞迴的。確實沒錯,遞迴的確是自己呼叫自己。遞迴簡單的應用 編寫乙個能計算斐波那契數列的函式,也就是這樣 int fac int n 相信絕大部分人都能看懂這段 遞迴除了可以用自己呼叫自己這樣描述之外,還可以這樣表示遞迴函式 遞推式 邊界...
BFS寬搜模板(求矩陣中連通塊的個數)
給出乙個n m的矩陣,元素為0或1.稱每個位置的上下左右與之相鄰。如果矩陣中有若干個1是相鄰的,那麼這些1就構成了乙個塊。求矩陣中 塊 的個數。include include include include include include using namespace std typedef lo...