zoukankan      html  css  js  c++  java
  • hdu 1241 Oil Deposits (一次dfs搞定有某有)

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<algorithm>
     5 using namespace std;
     6 char map[105][105];
     7 
     8 int dir[8][2]={0, 1, 1, 0, -1, 0, 0, -1, 1, 1, 1, -1, -1, 1, -1, -1};
     9 int n, m;
    10 int ans;
    11 
    12 bool judge(int x, int y){
    13       if(x<1 || x>n || y<1 || y>m) return false;
    14       return true;
    15 }
    16 
    17 void dfs(int x, int y, bool flag){
    18 
    19    if(map[x][y]=='@'){
    20           map[x][y]='*';
    21           ++ans;
    22        for(int i=0; i<8; ++i){
    23              int xx=x+dir[i][0], yy=y+dir[i][1];
    24              if(judge(xx, yy) && map[xx][yy]=='@'){
    25                   --ans;
    26              dfs(xx, yy, 1);
    27           }
    28        }
    29        if(flag)  return;//flag==1表明没有将油田搜索完毕
    30    }
    31    
    32    for(int i=0; i<8; ++i){
    33           int xx=x+dir[i][0], yy=y+dir[i][1];  
    34             if(judge(xx, yy) && map[xx][yy]!='#'){
    35               if(map[xx][yy]=='*')
    36                  map[xx][yy]='#';
    37               dfs(xx, yy, 0);
    38           }
    39    }
    40 }
    41 
    42 int main(){
    43     while(cin>>n>>m && (n||m)){
    44         for(int i=1; i<=n; ++i)
    45            cin>>(map[i]+1);
    46         ans=0;
    47         dfs(1, 1, 0);
    48         cout<<ans<<endl;
    49     }
    50     return 0;
    51 }
  • 相关阅读:
    Yarn和Mesos:资源管理调度平台
    链接、装载、库
    PostgreSQL查询优化简介
    STL内存管理
    jemalloc总结
    ptmalloc总结
    数据库查询优化
    Linux交换空间和内存不足
    Linux内存管理
    HBase:分布式列式NoSQL数据库
  • 原文地址:https://www.cnblogs.com/hujunzheng/p/3911470.html
Copyright © 2011-2022 走看看