Celdas - Buscando el número de celdas en C++

inserte la descripción de la imagen aquí

Encuentre el número de celdas

Tema Descripción

Una matriz rectangular que consta de los números 0 00 a9 99 composición, número1 11 a9 99 representa una celda, y la celda se define como la misma celda a lo largo del número de celda, arriba, abajo, izquierda y derecha, si todavía es un número de celda, encuentre el número de celdas en una matriz rectangular dada.

formato de entrada

Los dos enteros en la primera línea representan el tamaño de la matriz nnn ymmm _

Siguiente _n líneas, cada línea tiene una longitud demmm es una cadena que contiene solo los caracteres0hasta9, que representa eston × mn \times mnorte×matriz de m .

formato de salida

Un entero por línea representa el número de celdas.

muestra

entrada de muestra

4 10
0234500067
1034560500
2045600671
0000000089

salida de muestra

4

pista

Tamaño de datos y convenciones

Para 100 % 100\%100% de datos, garantía1 ≤ n , m ≤ 100 1 \le n,m \le 1001n ,metro100 _

solución

Solo búsqueda de fuerza bruta

el código

#include <bits/stdc++.h>
using namespace std;
short a[1000][1000];
int n,m,s;
string t;
void laiba(int i,int j)
{
    
    
	if (a[i][j]==0) return;
	a[i][j]=0;
	laiba(i-1,j);
	laiba(i,j-1);
	laiba(i+1,j);
	laiba(i,j+1);
}
int main ()
{
    
    
	cin >>n >>m;
	for (int i=1;i<=n;i++)
	{
    
    
		cin >>t;
		for (int j=1;j<=m;j++)
		{
    
    
			a[i][j]=t[j-1]-48;
		}
	}
	for (int i=1;i<=n;i++)
	{
    
    
		for (int j=1;j<=m;j++)
		{
    
    
			if (a[i][j])
			{
    
    
				s++;
				laiba(i,j);
			}
		}
	}
	cout <<s;
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/DUXS11/article/details/132188829
Recomendado
Clasificación