【题目描述】
一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。如:
阵列
4 10 0234500067 1034560500 2045600671 0000000089
有4个细胞。
【输入格式】
第一行为矩阵的行n和列m, n和m不超过100;
下面为一个n×m的矩阵。
【输出格式】
细胞个数。
#include<bits/stdc++.h>
using namespace std;
int n, m,ans;
char y[105][105];
void dfs(int x, int y) {
if (x > n || x < 1 || y > m || y < 1 || y[x][y] == '0')return;
y[x][y] = '0';
dfs(x + 1, y);
dfs(x, y + 1);
dfs(x - 1, y);
dfs(x, y - 1);
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) cin >> y[i][j];
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (y[i][j] != '0') {
ans++;
dfs(i, j);
}
}
}
cout << ans << endl;
return 0;
}