• 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;
    }

  • 相关阅读:
    密码 (pasuwado)
    bzoj 4131: 并行博弈 (parallel)
    Beads
    bzoj2338数矩形(rectangle)
    数树数
    最近公共祖先(lca)
    在python中遍历字典元素
    加载本地json文件,并利用批处理调用Chrome显示html
    numpy保存数据
    Echarts 地理信息可视化:基于地图显示坐标点信息
  • 原文地址:https://www.cnblogs.com/T8023Y/p/3204281.html
Copyright © 2020-2023  润新知