先放上這題的鏈結 p1451 求細胞數量
寫完這題想到我之前寫的題目都不是很記得了,決定在部落格寫乙個做題筆記,從這題開始將我做的每一題都寫乙個題解
所以,現在進入正題
這道題一看就知道,是dfs判斷連通塊
本來做這個題目是想練習dfs,但是由於dfs並不是很會,所以還是寫的暴力搜尋,可能是資料比較水,居然過了
我的思路很簡單,就是遞迴搜尋整個矩陣,尋找不為0的座標,找到就置為0,搜到邊界就返回,然後計數器加一
上**
#include#includeusing namespace std;
char a[100][100]; //存矩陣
int ans;
int n,m;
void sousuo(int x,int y)
if(a[x+1][y]!='0')
if(a[x-1][y]!='0')
if(a[x][y-1]!='0')
}int main()
} for(int i=1;i<=m;i++)
} }cout不會算時間複雜度,但是感覺如果資料狠一點就過不了,畢竟題目資料範圍矩陣最大100*100
如果各位想再次練習此類題目,可以戳下面的鏈結,練習另一道類似的題(其實就是推薦我的另一篇題解 )
ps:這裡再貼乙個題解裡看到的int陣列的矩陣輸入
for(c=1;c<=m;c++)
}
洛谷P1451 求細胞數量
一矩形陣列由數字0到9組成,數字1到9代表細胞,細胞的定義為沿細胞數字上下左右若還是細胞數字則為同一細胞,求給定矩形陣列的細胞個數。1 m,n 100 輸入格式 輸入 整數m,n m行,n列 矩陣輸出格式 輸出 細胞的個數 輸入樣例 1 複製 4 10 0234500067 1034560500 2...
洛谷P1451 求細胞數量
一矩形陣列由數字0到9組成,數字1到9代表細胞,細胞的定義為沿細胞數字上下左右若還是細胞數字則為同一細胞,求給定矩形陣列的細胞個數。如上圖所示,該矩陣可以劃分為4個細胞。對該矩陣進行掃瞄,如果當前元素不為0,細胞個數加1,然後對其四個方向進行遞迴,然後將當前元素置為0。這樣子通過兩重迴圈就可以找到矩...
洛谷P1451 求細胞數量
洛谷p1451 求細胞數量 題目描述 一矩形陣列由數字0到9組成,數字1到9代表細胞,細胞的定義為沿細胞數字上下左右若還是細胞數字則為同一細胞,求給定矩形陣列的細胞個數。1 m,n 100 輸入格式 輸入 整數m,n m行,n列 矩陣輸出格式 輸出 細胞的個數 輸入輸出樣例 輸入 1 4 10 02...