【广度优先搜索】1995: 细胞 cell

题目描述

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


0234500067
1034560500
2045600671
0000000089

Input

 【输入格式】
整数m、n(m行n列)矩阵
【输入样例】
4 10
0234500067
1034560500
2045600671
0000000089

Output

 【输出格式】
细胞的个数

【输出样例】
4

代码如下

#include

#include

using namespace std;

// 定义方向数组,用于上下左右移动

int dx[] = {-1, 1, 0, 0};

int dy[] = {0, 0, -1, 1};

void dfs(vector>& grid, int x, int y) {

    // 标记当前位置为已访问

    grid[x][y] = 0;

   

    // 遍历四个方向

    for (int i = 0; i < 4; ++i) {

        int nx = x + dx[i];<

你可能感兴趣的:(宽度优先,算法)