hdu 1241 Oil Deposits (一次dfs搞定有某有)

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
char map[105][105];

int dir[8][2]={0, 1, 1, 0, -1, 0, 0, -1, 1, 1, 1, -1, -1, 1, -1, -1};
int n, m;
int ans;

bool judge(int x, int y){
      if(x<1 || x>n || y<1 || y>m) return false;
      return true;
}

void dfs(int x, int y, bool flag){

   if(map[x][y]=='@'){
          map[x][y]='*';
          ++ans;
       for(int i=0; i<8; ++i){
             int xx=x+dir[i][0], yy=y+dir[i][1];
             if(judge(xx, yy) && map[xx][yy]=='@'){
                  --ans;
             dfs(xx, yy, 1);
          }
       }
       if(flag)  return;//flag==1表明没有将油田搜索完毕
   }

   for(int i=0; i<8; ++i){
          int xx=x+dir[i][0], yy=y+dir[i][1];
            if(judge(xx, yy) && map[xx][yy]!='#'){
              if(map[xx][yy]=='*')
                 map[xx][yy]='#';
              dfs(xx, yy, 0);
          }
   }
}

int main(){
    while(cin>>n>>m && (n||m)){
        for(int i=1; i<=n; ++i)
           cin>>(map[i]+1);
        ans=0;
        dfs(1, 1, 0);
        cout<<ans<<endl;
    }
    return 0;
}
时间: 2024-09-15 23:12:19

hdu 1241 Oil Deposits (一次dfs搞定有某有)的相关文章

hdu 1241 Oil Deposits

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241 Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 18297 Accepted Submission(s): 10548 Problem Description The GeoSurvComp geologic su

杭电bfs 水题1241 Oil Deposits - 油田 详解 + 分析

Oil Deposits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 13887    Accepted Submission(s): 7985 Problem Description The GeoSurvComp geologic survey company is responsible for detecting under

uva 572 - Oil Deposits

点击打开链接 题目意思:给你一块区域里面分布着油田,只要有连着就属于同一个油田,求出该区域有几个油田 解题思路:简单的Bfs 或 dfs 可以搞定 ,注意对走过的进行标记用mark数组. 代码: //DFS代码(用到递归) #include <iostream> #include <queue> #include <cstdio> #include <cstring> using namespace std; const int MAXN = 110; in

格子啦一键还原 轻松搞定数据备份还原“其实只在瞬间!”

无论是在家悠闲的宅男宅女,还是在公司拼搏的上班族,电脑里面的数据一直是我们关心的东西.常常有人感叹:电脑死机了,以前的快乐时光找不回了;电脑崩溃了,报表文档不见了;电脑瘫痪了,上级要的报告没了,要被炒鱿鱼了--有没有办法可以解决这个问题,让我们不在为电脑数据问题而烦恼呢?格子啦一键还原就可以轻轻松松搞定数据备份还原. 格子啦一键还原(http://hy.gezila.com )是第一款实现3秒备份,5秒还原的秒杀软件,采用数据地图专利技术可创建1000个还原点,恢复到不同时候,系统瘫痪F11一键

vb 数组问题,求各位大神搞定,谢谢

问题描述 vb 数组问题,求各位大神搞定,谢谢 Private Sub Command1_Click() Dim strDataValue() As StringDim stray() As StringDim strss As StringDim ar1() As StringDim sss As StringDim i As Integer strss = ""1245121443437676764"" ar1 = Split(strss) For i = 0

帮你快速搞定网页配色的方法(附配色神器)

  完全零基础的新手如何做好网页配色?今天@喪心病狂十六夜貓 这篇好文,从网页基色.强调色.深色到应用整个配色方案 都有详细的流程与教学,每个步骤几乎都不用思考,用文章提供的配色神器就可以搞定了,你只要决定整个风格就行了.好东西千万別错过,来收! 目录 决定基色 决定强调色 决定深色 让我们应用配色方案 01. 首先决定基色 首先,来决定网站的基色吧!虽然说你可以使用任何你喜欢的颜色,但为了让别人理解你的设计意图和理念,尽量还是需要注意以下几点. 善于使用手边的资料 客户端的标志上常用的颜色,往

如何利用6个摄影构图法搞定设计布局?

  摄影设计双学习!今天腾讯的同学一边聊摄影,一边聊设计,总结了6个实用的摄影技巧,同样适合拿来搞定网页设计中的布局,设计是主,摄影是客,客从主意,帮你快速理解网页上的构图,来学习咯. 小K :一幅好照片要把观众的注意力吸引到趣味中心的被摄主体上.无论是拍什么类型的照片,都会有一个主体.你喜欢拍人物,拍生态,这些都不是问题,但是一旦主体被模糊,欣赏照片时就会忽略照片的主体,这样的照片是不失败不完美的,因为真正想让观众看的东西并没有一眼看到.例如婚纱照,主体肯定是人物新娘和新郎.如果目光都被新娘后

10个文字排版秘诀搞定你的PPT设计

  10个文字排版秘诀搞定你的PPT设计          资深视觉设计师 Janie Kliever 在 Design School 发表了一篇文章,列出 10 个能帮你增进文字排版的诀窍和密技,虽然介绍的是英文字型,不过还是相当实用,让我们一起来看看吧! 1.将要表达的讯息配上适当的感觉 用了两种差不多的字型?或是你总是用最喜欢的那一种字型?以上都是没有妥善选择字型的情形. 每种字型都散发独特的情感或个性,也许是友善.新潮.严肃或傻里傻气,但大部分的字型并不是万用的,所以你要判断一个字型对你

分分钟搞定IOS远程消息推送

分分钟搞定IOS远程消息推送 一.引言 IOS中消息的推送有两种方式,分别是本地推送和远程推送,本地推送在http://my.oschina.net/u/2340880/blog/405491这篇博客中有详细的介绍,这里主要讨论远程推送的流程与配置过程. 二.远程推送机制的原理 1.从一张很火的图说起 搜索IOS远程推送,你总能看到一张如下的流程示意图,因为这张图确实很火,所以我也将它引用在此: 这张图示意的很清晰,大致意思是这样:你的应用服务端将消息发送到apple的APNS服务器,APNS服