一矩形陣列由數字0到9組成。我們把數字1到9稱為細胞數字,數字0稱為非細胞數字。
若乙個細胞數字上、下、左、右仍是細胞數字,我們則把這些細胞數字稱為同一細胞。 求給定矩形陣列中細胞的個數。
第1行,整數m、n(m表示行,n表示列、1<=m,n<=100)
接下來的m行表示輸入的矩形陣列
細胞的個數
4 10
0234500067
1034560500
2045600671
0000000089
4
此題就是一道簡單的bfs的求連通塊。
遍歷每乙個點,將每個點都bfs一遍,前提是這個點不等於0(即是數字細胞) 和 這個點沒有被訪問過。只要能進入bfs,說明肯定有乙個細胞,ans++;
進入bfs的時候,先判斷當前遞迴到的這個點是不是0 和 這個點有沒有被訪問過,如果是就直接return 掉。否則就開始遍歷周圍的點,且將當前這個點標記為訪問過。
bfs結束後,直接輸出ans即可。
#include using namespace std;
int mp[105][105];//記錄矩陣
bool vis[105][105];//標記陣列,是否被訪問
int fx[5] = ;//x座標的變化
int fy[5] = ;//y座標的變化
void bfs(int x,int y)
}} int main()
}//輸入
for (int i = 1;i <= m;i++)//將所有點都標記為未訪問
}int ans = 0;//答案便量
for (int i = 1;i <= m;i++)}}
cout<···完結撒花···
求細胞數量(DFS)
題面 from luogu 求細胞數量 一矩形陣列由數字0到9組成,數字1到9代表細胞,細胞的定義為沿細胞數字上下左右若還是細胞數字則為同一細胞,求給定矩形陣列的細胞個數。1 m,n 100 輸入格式 輸入 整數m,n m行,n列 矩陣 輸出格式 輸出 細胞的個數 樣例.in 4 10 023450...
P1451 求細胞數量
這是一道典型的廣搜裸題,不多說,上 const z array 1.4,1.2 of longint 1,0 1,0 0,1 0,1 var i,j,k,t,h,q longint a array 20.1000,20.1000 of char x,y,s array 2.1000 of longi...
P1451 求細胞數量
題目描述 一矩形陣列由數字0到9組成,數字1到9代表細胞,細胞的定義為沿細胞數字上下左右若還是細胞數字則為同一細胞,求給定矩形陣列的細胞個數。1 m,n 100 輸入輸出格式 輸入格式 輸入 整數m,n m行,n列 矩陣輸出格式 輸出 細胞的個數 輸入輸出樣例 輸入樣例 1 4 10 0234500...