细胞---

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值