查找细胞

来源:互联网 发布:淘宝开店认证不通过 编辑:程序博客网 时间:2024/04/30 07:50

题目描述
一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。

输入描述
第一行输入n,m;表示n行m列矩阵。
接下来输入该n*m矩阵

输出描述
细胞个数

输入样例
4 10
0234500067
1034560500
2045600671
0000000089

输出样例
4

简单的搜索

#include"iostream"#include"string.h"using namespace std;int m,n;char ai[1000][1000];int fx[4][2]={1,0,-1,0,0,1,0,-1};int num=0;bool check(int a,int b){    if(a>=0&&a<m&&b>=0&&b<n&&(ai[a][b]-'0'))        return true;    return false;       }void dfs(int x,int y){    for(int i=0;i<4;i++)    {        int a=x+fx[i][0];        int b=y+fx[i][1];        if(check(a,b))        {            ai[a][b]='0';            dfs(a,b);        }    }}int main(){    cin>>m>>n;    for(int i=0;i<m;i++)    {        cin>>ai[i];    }    for(int i=0;i<m;i++)    {        for(int j=0;j<n;j++)        {            int shu=ai[i][j]-'0';            if(shu)            {                num++;                ai[i][j]='0';                dfs(i,j);            }        }    }    cout<<num<<endl;    return 0;}
0 0
原创粉丝点击