zoukankan      html  css  js  c++  java
  • UVa 572

    Description

    GeoSurvComp地质调查公司负责探測地下石油储藏。

    GeoSurvComp如今在一块矩形区域探測石油。并把这个大区域分成了非常多小块。他们通过专业设备。来分析每一个小块中是否蕴藏石油。

    假设这些蕴藏石油的小方格相邻。那么他们被觉得是同一油藏的一部分。

    在这块矩形区域,可能有非常多油藏。

    你的任务是确定有多少不同的油藏。

    Input

    输入可能有多个矩形区域(就可以能有多组測试)。每一个矩形区域的起始行包括m和n。表示行和列的数量,1<=n,m<=100,假设m =0表示输入的结束。接下来是n行,每行m个字符。每一个字符相应一个小方格,而且要么是'*',代表没有油,要么是'@'。表示有油。

    Output

    对于每个矩形区域,输出油藏的数量。两个小方格是相邻的,当且仅当他们水平或者垂直或者对角线相邻(即8个方向)。

    Sample Input

     
    1 1
    *
    3 5
    *@*@*
    **@**
    *@*@*
    1 8
    @@****@*
    5 5 
    ****@
    *@@*@
    *@**@
    @@@*@
    @@**@
    0 0 


    虽热非常easy ,可是也感觉陌生没做过搜索了…… 这两天训练赛也非常不在状态。

    #include<iostream>
    #include<sstream>
    #include<algorithm>
    #include<cstdio>
    #include<string.h>
    #include<cctype>
    #include<string>
    #include<cmath>
    #include<vector>
    #include<stack>
    #include<queue>
    #include<map>
    #include<set>
    using namespace std;
    const int INF=110;
    char cnt[INF][INF];
    int vis[INF][INF];
    int dir[][2]= {{1,0},{0,1},{-1,0},{0,-1},{-1,-1},{1,1},{-1,1},{1,-1}};
    int n,m;
    void dfs(int x,int y)
    {
        for(int i=0; i<8; i++)
        {
            int tx=x+dir[i][0];
            int ty=y+dir[i][1];
            if(tx >= 1 && tx <= n && ty>=1 && ty<=m && cnt[tx][ty]=='@' && !vis[tx][ty])
            {
                vis[tx][ty]=1;
                dfs(tx,ty);
            }
        }
    }
    
    int main()
    {
    
        while(cin>>n>>m,n+m)
        {
            for(int i=1; i<=n; i++)
    
                scanf("%s",cnt[i]+1);
            int count=0;
            memset(vis,0,sizeof(vis));
            for(int i=1; i<=n; i++)
            {
                for(int j=1; j<=m; j++)
                {
                    if(cnt[i][j]=='@'&&!vis[i][j])
                    {
                        count++;
                        dfs(i,j);
                    }
                }
    
            }
            cout<<count<<endl;
        }
        return 0;
    }
    



  • 相关阅读:
    jquery
    jquery特效
    CSS
    跨域详解 been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource
    MySQL DATE_FORMAT() 函数
    微信支付如何做分账?
    为什么要用Redis?一定要用Redis吗?
    spring boot配置文件中 spring.mvc.static-path-pattern 配置项
    阿里云MNS消息服务quene方式发送数据流程图
    mybatis-plus QueryWrapper 自定义查询条件
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7137869.html
Copyright © 2011-2022 走看看