洛谷 P1451 求细胞数量

题目描述

一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。(1<=m,n<=100)?

输入输出格式

输入格式:

输入:整数m,n(m行,n列)

矩阵

输出格式:

输出:细胞的个数

输入输出样例

输入样例#1:
4  10
0234500067
1034560500
2045600671
0000000089
输出样例#1:
4


dfs
屠龙宝刀点击就送
#include <iostream>
#include <cstdio>
using namespace std;
char tx[151][151];
int fx[5]={1,-1,0,0},fy[5]={0,0,-1,1},m,n,ans;
void dfs(int x,int y)
{
    tx[x][y]='0';
    for(int k=0;k<4;++k)
    {
        int to_x=x+fx[k],to_y=y+fy[k];
        if(to_x>=1&&to_x<=m&&to_y>=1&&to_y<=n&&tx[to_x][to_y]!='0') dfs(to_x,to_y);
    }
}
int main()
{
    scanf("%d%d",&m,&n);
    for(int i=1;i<=m;++i)
     for(int j=1;j<=n;++j)
      cin>>tx[i][j];
    for(int i=1;i<=m;++i)
     for(int j=1;j<=n;++j)
      if(tx[i][j]!='0') 
      {
          ans++;
        dfs(i,j);
      }
    printf("%d",ans);
    return 0; 
}


 
我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
原文地址:https://www.cnblogs.com/ruojisun/p/6685353.html