洛谷P1451-求细胞数量(DFS)

简介: 洛谷P1451-求细胞数量(DFS)

题目描述:


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


输入:


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

矩阵


输出:


输出:细胞的个数


样例输入:



4 10

0234500067

1034560500

2045600671

0000000089


样例输出:


4


程序代码:


#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,ans=0;
int a[105][105],vis[105][105];
int next1[4]={1,-1,0,0};
int next2[4]={0,0,-1,1};
void dfs(int x,int y)
{
  vis[x][y]=1;
  for(int i=0;i<4;i++)
  {
    int dx=x+next1[i];
    int dy=y+next2[i];
    if(a[dx][dy]==0||vis[dx][dy]==1)
      continue;
    dfs(dx,dy);
  }
}
int main()
{
  scanf("%d %d",&m,&n);
  memset(vis,0,sizeof(vis));
  for(int i=1;i<=m;i++)
    for(int j=1;j<=n;j++)
      scanf("%1d",&a[i][j]);//依次读入一位 
  for(int i=1;i<=m;i++)
  {
    for(int j=1;j<=n;j++)
    {
      if(vis[i][j]==0&&a[i][j]!=0)
      {
        dfs(i,j);
        ans++;
      }
    }
  }
  printf("%d\n",ans);
  return 0;
}
相关文章
|
6月前
|
算法 测试技术 C++
【差分数组】【图论】【分类讨论】【整除以2】3017按距离统计房屋对数目
【差分数组】【图论】【分类讨论】【整除以2】3017按距离统计房屋对数目
|
6月前
|
算法 安全 测试技术
[组合数学]LeetCode:2954:统计感冒序列的数目
[组合数学]LeetCode:2954:统计感冒序列的数目
|
6月前
|
机器学习/深度学习
【每日一题Day364】LC2003每棵子树内缺失的最小基因值 | dfs
【每日一题Day364】LC2003每棵子树内缺失的最小基因值 | dfs
54 0
|
6月前
【每日一题Day305】LC1448统计二叉树中好节点的数目 | dfs
【每日一题Day305】LC1448统计二叉树中好节点的数目 | dfs
42 0
|
5月前
|
搜索推荐 Java
单源最短路(只有一个起点)bfs,多源BFS,目录力扣675.为高尔夫比赛砍树,多源最短路问题:力扣542.01矩阵力扣1020.飞地的数量
单源最短路(只有一个起点)bfs,多源BFS,目录力扣675.为高尔夫比赛砍树,多源最短路问题:力扣542.01矩阵力扣1020.飞地的数量
|
6月前
|
算法 测试技术 C#
【图论】【分类讨论】LeetCode3017按距离统计房屋对数目
【图论】【分类讨论】LeetCode3017按距离统计房屋对数目
|
6月前
|
算法 测试技术 C#
【差分数组】【图论】【分类讨论】【整除以2】100213按距离统计房屋对数目
【差分数组】【图论】【分类讨论】【整除以2】100213按距离统计房屋对数目
【差分数组】【图论】【分类讨论】【整除以2】100213按距离统计房屋对数目
|
6月前
【每日一题Day241】LC1254统计封闭岛屿的数目 | dfs
【每日一题Day241】LC1254统计封闭岛屿的数目 | dfs
46 1
|
6月前
|
C++ 索引 Python
leetcode-200:岛屿数量
leetcode-200:岛屿数量
46 0
|
11月前
|
算法 机器人 测试技术
C++前缀和算法的应用:预算内的最多机器人数目
C++前缀和算法的应用:预算内的最多机器人数目