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

    题目描述

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

    输入输出格式

    输入格式:

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

    矩阵

    输出格式:

    输出:细胞的个数

    输入输出样例

    输入样例#1:
    4  10
    0234500067
    1034560500
    2045600671
    0000000089
    
    输出样例#1:
    4
    解释样例:

    0234500067

    1034560500

    2045600671

    0000000089

    一样的颜色表示为一个细胞

     

    #include<bits/stdc++.h>
    using namespace std;
    int read()
    {
    int ret=0,ok=1;
    char ch=getchar();
    while(ch<'0'||ch>'9')
    {
    if(ch=='-')ok=-1;
    ch=getchar();
    }
    for(;ch>='0'&&ch<='9';ch=getchar())
     ret=ret*10+ch-'0';
    return ret*ok;
    }
    int ans=0;
    int m,n;
    int a[1000][1000];
    inline void dfs(int x,int y)
    {
        if(!a[x][y])
        return ;
        a[x][y]=0;//符0,表示搜过,不在搜了。
        dfs(x+1,y);//向上
        dfs(x-1,y);//向下
        dfs(x,y+1);//向右
        dfs(x,y-1);//向左
    }
    int main()
    {
    //freopen("cell.in","r",stdin);
    //freopen("cell.out","w",stdout);
    m=read(),n=read();
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
        scanf("%1d",&a[i][j]);//这个输入很关键,如果你cin,会错,你可以试试。 
        }
    }
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(a[i][j]!=0)
            {
                ans++;//找到一个,
                dfs(i,j);//又从这个点搜
            }
        }
    }
    cout<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    未来行业
    百度网盘搜索方法
    JavaScript继承详解
    Win 7下破解Loadrunner 11(带中文版下载地址)
    NET下RabbitMQ实践[WCF发布篇]
    NET下RabbitMQ实践[示例篇]
    NET下RabbitMQ实践[配置篇]
    8个超炫的 Web 效果
    Windows下安装zip包解压版mysql
    键盘上相当于鼠标右键的快捷键和电脑快捷键大全
  • 原文地址:https://www.cnblogs.com/Hammer-cwz-77/p/7344002.html
Copyright © 2011-2022 走看看