zoukankan      html  css  js  c++  java
  • 洛谷 P1451【细胞】

    题目描述

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

    输入输出格式

    输入格式1

    输入:整数m,n(m行,n列)

    矩阵

    输出格式1

    输出:细胞的个数

    输入输出样例

    输入样例1

    4  10
    0234500067
    1034560500
    2045600671
    0000000089

    输出样例1

    4
    

    解题思路

      首先,一定要字符读入,然后遍历,遇到不是0就搜索它,把它连着的全变成0,ans++,最后输出即可。

    题解

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int n,m,ans; 
     4 char mp[101][101];
     5 int dir[4][2]={0,1,0,-1,1,0,-1,0};//四个方向 
     6 struct node{
     7     int X;
     8     int Y;//坐标 
     9     node(){}
    10     node(int xx,int yy)//构造函数 
    11     {
    12         X=xx;
    13         Y=yy;
    14      } 
    15 };
    16 queue<node> q;//队列 
    17 void dfs(int x,int y)
    18 {
    19     q.push(node(x,y));
    20     mp[x][y]='0';//打标记 
    21     while(!q.empty())
    22     {
    23         node head=q.front();//取出队头 
    24         q.pop();
    25         for(int i=0;i<4;i++)//四方向拓展 
    26         {
    27             int tx=head.X+dir[i][0];
    28             int ty=head.Y+dir[i][1];
    29             if(mp[tx][ty]!='0'&&tx>=1&&tx<=n&&ty>=1&&ty<=m)//是同伙并且在范围内就干掉他 
    30             {
    31                 mp[tx][ty]='0';//干掉 
    32                 q.push(node(tx,ty));//继续干 
    33             }
    34         }
    35     }
    36 }
    37 int main()
    38 {
    39     cin>>n>>m;
    40     for(int i=1;i<=n;i++)
    41     {
    42         for(int j=1;j<=m;j++)
    43         {
    44             cin>>mp[i][j];//存图 
    45         }
    46     }
    47     for(int i=1;i<=n;i++)
    48     {
    49         for(int j=1;j<=m;j++)
    50         {
    51             if(mp[i][j]!='0')//遍历到不是0,就把它变成0,ans++ 
    52             {
    53                 ans++;
    54                 dfs(i,j);
    55             }
    56         }
    57     }
    58     cout<<ans;//输出细胞 
    59     return 0;
    60 }
  • 相关阅读:
    兼容性问题
    Webfont 的兼容性问题[持续更新]
    WebView的坑[持续更新]
    [转]60fps on the mobile web
    IT男送什么礼物给女朋友呢?
    Lumia 1520 IE mobile window.devicePixelRatio
    Fiddler 故障
    IE(8~11+) 可用右键加速器
    [转]Zen Cart官网屏蔽中国用户访问的真正原因
    Internet Explorer Developer Channel 自动化测试 IE 浏览器
  • 原文地址:https://www.cnblogs.com/hualian/p/11185628.html
Copyright © 2011-2022 走看看