1. 程式人生 > >計算細胞數【BFS】

計算細胞數【BFS】

bsp lin esp 給定 sin int splay play 表示

問題描述

一矩形陣列由數字0到9組成,數字1到9代表細胞,細胞的定義為沿細胞數字上下左右還是細胞數字則為同一細胞,求給定矩形陣列的細胞個數。

輸入格式

2行:第1行為兩個整數 mm, nn, 代表矩陣的行數和列數。

接下來 mm 行,每行有nn 個由0—9構成的字符。

輸出格式

1個整數,表示細胞的個數。

樣例一

input

4 10
0234500067
1034560500
2045600671
0000000089

output

4

數據範圍與約定

時間限制: 1s1s

內存限制:256mb

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cmath>
 4
#include<cstdio> 5 #include<string> 6 #include<queue> 7 #include<algorithm> 8 #include<vector> 9 using namespace std; 10 int n,m,ans=0; 11 char a[101][101]; 12 void bfs(int x,int y){ 13 if(x>n||x<1||y>m||y<1||a[x][y]==0) return ; 14 a[x][y]=0; 15
bfs(x+1,y); 16 bfs(x-1,y); 17 bfs(x,y+1); 18 bfs(x,y-1); 19 } 20 int main(){ 21 cin>>n>>m; 22 for(int i=1;i<=n;i++){ 23 for(int j=1;j<=m;j++){ 24 cin>>a[i][j]; 25 } 26 } 27 for(int i=1;i<=n;i++){ 28 for(int
j=1;j<=m;j++){ 29 if(a[i][j]!=0){ 30 ans++; 31 bfs(i,j); 32 } 33 } 34 } 35 cout<<ans<<endl; 36 return 0; 37 }

第一次發BFS

256MB

計算細胞數【BFS】