計算細胞數【BFS】
阿新 • • 發佈:2018-02-23
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‘; 15bfs(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(intj=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】