zoukankan      html  css  js  c++  java
  • ZOJ 1709 Oil Deposits

    最主要的是分清楚从一个点遍历到周围的点,并且将遍历过的点做好标记。还有就是弄清楚分界。

    #include <iostream>
    using namespace std;
    char  map[105][105];
    int n,m;
    int dy[10] = {-1,-1,-1,0,0,1,1,1};
    int dx[10] = {-1,0,1,-1,1,-1,0,1};

    int judge(int x,int y)
    {
      if(y < 1 || y > m|| x < 1|| x > n)
        {
          return 0;
        }
      return 1;
    }
    void dfs(int x, int y)
     {
          map[x][y] = -1;
         for(int i = 0 ; i < 8; i++)
           {
             int ty = y + dy[i];
             int tx = x + dx[i];
           if( judge(tx,ty) == 0)
             {
                continue;
             }  

          if(map[tx][ty] == '@')
             {
                dfs(tx,ty);
             }
           }
    }

    int main()
    {
      while(cin>>n>>m && n!= 0 && m!=0)
      {
           for(int i = 1;i<= n;i++)
            {
                 for(int j = 1 ; j <= m;j++)
               {
                    cin>>map[i][j];
               }  

           }
         int sum  = 0;
           for(int i = 1 ; i <= n;i++)
           {
               for(int j = 1 ; j <= m;j++)
              {
                  if(map[i][j] == '@')
              {
                 dfs(i,j);
                 sum++;
              }
              }
           }
             cout<<sum<<endl;
        }
       return 0;
    }

  • 相关阅读:
    解决运行docker命令要用sudo的问题
    python3 http.server 本地服务支持跨域
    Linux 命令速记本
    截取某段时间内的日志
    centos7 安装postgresql10
    centos 7 安装 mail
    centos7 mail
    centos7 mysql 5.7 官网下载tar安装
    修改storm ui 默认端口
    redis-trib构建集群
  • 原文地址:https://www.cnblogs.com/T8023Y/p/3204281.html
Copyright © 2011-2022 走看看