Celdas - Buscando el número de celdas en C++
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 caracteres0
hasta9
, 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 1001≤n ,metro≤100 _
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;
}