题目描述
一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。编程需要用到的队列及其相关函数已经实现,你只需要完成count函数以及主函数即可。
输入
第一行输入两个整数,分别代表矩阵的行和列 输入m*n的矩阵,由数字0到9组成。
输出
细胞个数。
#include<bits/stdc++.h>
using namespace std;
int l,r, data[50][50], ans = 0;
void dfs(int n, int m){
if(n<0||n>l-1) return;
if(m<0||m>r-1) return;
else if(data[n][m]!=0){
data[n][m] = 0;
dfs(n-1,m);
dfs(n+1,m);
dfs(n,m-1);
dfs(n,m+1);
}
else if(data[n][m]==0) return;
}
int main(){
cin>>l>>r;
for(int i = 0; i < l; i++){
for(int j = 0; j < r; j++){
cin>>data[i][j];
}
}
for(int i = 0; i < l; i++){
for(int j = 0; j < r; j++){
if(data[i][j]!=0){
ans++;
dfs(i,j);
}
}
}
cout<<ans;
return 0;
}