zoukankan      html  css  js  c++  java
  • POJ 1562 Oil Deposits

    <pre name="code" class="cpp">题目大意:输入一个二维网格。每一个网格单元中仅仅有两种字符'*'和'@','@'表示油田。'*'表示土地。求出网格中共同拥有多少块油田?
              注意:全部横向。竖向。对角线方向连同的油田算一块油田。
    算法思想:
              广度优先搜索。扫描每个网格。推断该网格是否是油田且未被标记,若是则计数加1而且进行广搜标记全部与其相连通
              的油田,若不是则仅仅标记。扫描全然部的网格后输出计数值就可以。
    
    代码例如以下:
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    using namespace std;
    int m,n;
    const int M=105;
    int color[M][M];
    char grid[M][M];//注意为字符数组
    
    
    
    void Bfs(int a,int b){
          if(color[a][b]==0) return ;
          else{
              color[a][b]=0;
              if(grid[a][b]=='*') return ;
              else{
               if(a-1>0) Bfs(a-1,b);//上
               if(a+1<=m) Bfs(a+1,b);//下
               if(b-1>0) Bfs(a,b-1);//左
               if(b+1<=n) Bfs(a,b+1);//右
               if(a-1>0&&b-1>0) Bfs(a-1,b-1);//左上
               if(a-1>0&&b+1<=n) Bfs(a-1,b+1);//右上
               if(a+1<=m&&b-1>0) Bfs(a+1,b-1);//左下
               if(a+1<=m&&b+1<=n) Bfs(a+1,b+1);//右下
              }
          }
    }
    
    int main(){
       while(cin>>m>>n){     
         if(m==0) break;
         memset(color,-1,sizeof(color));
         int count=0;
         for(int i=1;i<=m;i++){
             for(int j=1;j<=n;j++){
                cin>>grid[i][j];
             }
         }
         for(int i=1;i<=m;i++){
             for(int j=1;j<=n;j++){
              if(color[i][j]==0) continue;
              else{
                  if(grid[i][j]=='*'){
                      color[i][j]=0; 
                      continue;
                  }
                  else{
                      count++;
                      Bfs(i,j);
                  }
              }
             }
         }
         cout<<count<<endl;
       }
        return 0;
    }
    
    
    


    
       
    
  • 相关阅读:
    laravel Eloquent 模型(也就是我本时说的Model)
    laravel 查询构建器(连贯操作)
    laravel 模版引擎使用
    laravel 数据库操作(表、字段)
    url重写(urlrewrite)的一些系统变量
    apache 图片防盗链
    在线制作api文档
    php 网络爬虫,爬一下花瓣的图片
    laravel 使用 session
    laravel 控制器构造方法注入request对象
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7039787.html
Copyright © 2011-2022 走看看