查找细胞-BFS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查找细胞-BFS相关的知识,希望对你有一定的参考价值。

http://codeup.cn/problem.php?cid=100000660&pid=7

#include<cstdio>
#include<queue>
using namespace std;

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

void clear_cell(int i, int j)
{
  queue<int>que;
  que.push(i * 10000 + j); //compress (i,j) into int
  cell[i][j] = 0;
  while(!que.empty()) {
    int t = que.front();
    que.pop();
    int x = t / 10000;
    int y = t % 10000;
    for(int d = 0; d < 4; d++) {
      int tx = x + dx[d];
      int ty = y + dy[d];
      if(cell[tx][ty]) {
        que.push(tx * 10000 + ty);
        cell[tx][ty] = 0;
      }
    }
  }
}

int main()
{
  int n, m, i, j, sum = 0;
  scanf("%d%d", &n, &m);
  for(i = 1; i <= n; i++)
    for(j = 1; j <= m; j++)
      scanf("%1d", &cell[i][j]);
  for(i = 1; i <= n; i++) {
    for(j = 1; j <= m; j++) {
      if(cell[i][j]) {
        sum++;
        clear_cell(i, j);
      }
    }
  }
  printf("%d\n", sum);
  return 0;
}

/*
4 10
0234500067
1034560500
2045600671
0000000089
*/

 

以上是关于查找细胞-BFS的主要内容,如果未能解决你的问题,请参考以下文章

日常水题-bfs求细胞数量

从硒中读取空白细胞时无法处理空白细胞?

校内胡策 agar - BFS

单细胞mRNA测序技术

求细胞数量 - 洛谷

求细胞数量 - 洛谷