Description
一矩形阵列由数字0到9组成,数字1到9代表细胞,
细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,
求给定矩形阵列的细胞个数。
Format
Input
整数m,n(m行,n列)
1<=N,M<=100
Output
细胞的个数
Samples
输入数据 1
4 10
0234500067
1034560500
2045600671
0000000089
Copy
输出数据 1
4
#include<bits/stdc++.h>
using namespace std;
char f[92369][12137],d;
int sf;
void ss(int ff,int mm){
f[ff][mm]='.';
if(f[ff+1][mm]=='W') ss(ff+1,mm),f[ff][mm]='.';
if(f[ff-1][mm]=='W') ss(ff-1,mm),f[ff][mm]='.';
if(f[ff][mm-1]=='W') ss(ff,mm-1),f[ff][mm]='.';
if(f[ff][mm+1]=='W') ss(ff,mm+1),f[ff][mm]='.';
//if(f[ff+1][mm+1]=='W') ss(ff+1,mm+1),f[ff][mm]='.';
//if(f[ff+1][mm-1]=='W') ss(ff+1,mm-1),f[ff][mm]='.';
//if(f[ff-1][mm+1]=='W') ss(ff-1,mm+1),f[ff][mm]='.';
//if(f[ff-1][mm-1]=='W') ss(ff-1,mm-1),f[ff][mm]='.';
//cout<<ff<<" "<<mm<<endl;
f[ff][mm]='.';
}
int main(){
int n,m,s=0;
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>d;
if(d=='0') f[i][j]='.';
else f[i][j]='W';
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(f[i][j]=='W'){
s++;
ss(i,j);
//cout<<i<<" "<<j<<endl;
}
}
}
cout<<s;
return 0;
}