zoukankan      html  css  js  c++  java
  • luogu P1451 求细胞数量

    P1451 求细胞数量

    题目描述

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

    输入输出格式

    输入格式:

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

    矩阵

    输出格式:

    输出:细胞的个数

    输入输出样例

    输入样例#1:
    4  10
    0234500067
    1034560500
    2045600671
    0000000089
    
    输出样例#1:
    4
    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    #include<cstring>
    #include<string>
    #include<queue>
    
    using namespace std;
    const int N=101;
    const int xd[]={0,-1,0,1};
    const int yd[]={-1,0,1,0};
    
    struct node{
        int x,y;
    }now,top,nxt;
    int a[N][N];
    bool vis[N][N];
    int answer;
    int n,m;
    queue<node>q;
    
    inline int read()
    {
        int x=0;char c=getchar();
        while(c<'0'||c>'9')c=getchar();
        return x=c-'0';
    }
    
    inline void bfs(int x,int y)
    {
        
        answer++;
        now.x=x;
        now.y=y;
        q.push(now);
        vis[x][y]=1;
        
        while(!q.empty())
        {
            top=q.front();
            q.pop();
            for(int i=0;i<4;i++)
            {
                int xx=xd[i]+top.x;
                int yy=yd[i]+top.y;
                if(a[xx][yy]&&xx>0&&xx<=n&&yy>0&&yy<=m)
                {
                    a[xx][yy]=0;
                    nxt.x=xx;
                    nxt.y=yy;
                    q.push(nxt);
                }
            }
        }
    }
    
    int main()
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                a[i][j]=read();
        
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                if(a[i][j])
                    bfs(i,j);
                        
        printf("%d",answer);
        return 0;
    }
  • 相关阅读:
    简单工厂模式
    c# 接口属性继承
    web安全测试---跨站点脚本测试
    web安全测试---WebScarab工具介绍
    Appscan安全漏洞扫描使用(转)
    web安全测试---AppScan扫描工具(转)
    修改DB-LINK连接数方法
    LoadRunner 11破解方法
    数据库学习网站和linux学习网站
    关于误删表可在回收站中闪回
  • 原文地址:https://www.cnblogs.com/lyqlyq/p/7086883.html
Copyright © 2011-2022 走看看