zoukankan      html  css  js  c++  java
  • A:细胞

    Problem A: 细胞

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 129  Solved: 91
    [Submit][Status][Web Board]

    Description

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

    Input

    整数m,n(m行,n列)1<=N,M<=100

    Output

    细胞的个数

    Sample Input

    4 10
    0234500067
    1034560500
    2045600671
    0000000089

    Sample Output

    4

    HINT

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int dx[5]={0,-1,1,0,0},dy[5]={0,0,0,1,-1};
     4 int num,m,n;
     5 bool b[51][81];
     6 char a[51][81];
     7 int h[4000][3];
     8 void bfs(int p,int q)
     9 {
    10     int head,tail,x,y;
    11     num++;
    12     b[p][q]=false;
    13     head=1;
    14     tail=1;
    15     h[1][1]=p;
    16     h[1][2]=q;
    17     while(head<=tail)
    18     {
    19         for (int i=1;i<=4;i++)
    20         {
    21             x=h[head][1]+dx[i];
    22             y=h[head][2]+dy[i];
    23             if ((x>=1) && (y>=1) && (x<=m) && (y<=n) && (b[x][y]==true))
    24             {
    25                 tail++;
    26                 h[tail][1]=x;
    27                 h[tail][2]=y;
    28                 b[x][y]=0;
    29             }    
    30         }
    31         head++;
    32     }
    33 }
    34 int main()
    35 {
    36     cin>>m>>n;
    37     for(int i=1;i<=m;i++)
    38     for(int j=1;j<=n;j++)
    39     {
    40         cin>>a[i][j];
    41         if (a[i][j]!='0')
    42         b[i][j]=true;
    43     }
    44     for (int i=1;i<=m;i++)
    45     for (int j=1;j<=n;j++)
    46     {
    47         if (b[i][j]==true)
    48         bfs(i,j);
    49     }
    50     cout<<num<<endl;
    51     return 0;
    52 }
    cell
  • 相关阅读:
    第十三周作业
    第十二周作业2
    第十二周作业
    第十一次作业
    第十周作业
    第九周作业
    第十五次作业
    十四周上机作业
    第十三周上机作业
    第十二周作业
  • 原文地址:https://www.cnblogs.com/LHR-HY/p/6785747.html
Copyright © 2011-2022 走看看