1241水dfs连接在一起的算一个

原创 2018年04月17日 08:57:57
//这题经典dfs,不过告诉我一个道理,方向什么的列举好了,写数组循环容易各种智障犯错误,,,,
#include <iostream>
#include <stdio.h>
using namespace std;

char map[101][101];
int n, m, sum;

void dfs(int i, int j)
{
    //若该点不可行或越界,返回
    if(map[i][j]!='@' || i<0 || j<0 || i>=m || j>=n) return;    
    else    //否则,标记该点为不可行,再往8个方向深搜
    {
        map[i][j] = '!';
        dfs(i-1, j-1);
        dfs(i-1, j);
        dfs(i-1, j+1);
        dfs(i, j-1);
        dfs(i, j+1);
        dfs(i+1, j-1);
        dfs(i+1, j);
        dfs(i+1, j+1);
    }
}

int main()
{
    int i, j;
    while(cin>>m>>n)
    {
        if(m==0 || n==0) break;
        sum = 0;
        for(i = 0; i < m; i++)
            for(j = 0; j < n; j++)
                cin>>map[i][j];
        for(i = 0; i < m; i++)
        {
            for(j = 0; j < n; j++)
            {
                if(map[i][j] == '@')
                {
                    dfs(i, j);
                    sum++;
                }
            }
        }
        cout<<sum<<endl;
    }

    return 0;
}

DFS:Lake Counting POJ 2386

题目大意: 有一个大小为N*M的园子,雨后积起了水。八连通的积水被认为是连接在一起的。请求出院子里共有多少水洼? 样例 10 12 W........WW. .WWW.....WWW ......
  • Once_Romise
  • Once_Romise
  • 2015-04-08 22:01:45
  • 298

DFS简单题 杭电1241 POJ 1154

DFS和BFS两种搜索方式,DFS是利用递归方式,需要一个visited数组,记录是否将节点访问过。BFS用队列来存储部分中间节点。 数据量小,而且要求简单,就用DFS。杭电1241DFS简单题 ...
  • IBelieve2016
  • IBelieve2016
  • 2017-06-30 16:45:29
  • 225

搜索入门(DFS)-Lake Counting(积水连通问题)

问题描述: 有一个大小为N*M的园子,雨后积起了水。八连通的积水被认为是连接在一起的。请求出园子里一共有多少水洼?(八连通指的是下图相对W的*部分) * * * *W* * * * 限制条件: N,M...
  • stack_queue
  • stack_queue
  • 2016-11-28 23:42:55
  • 555

HDU1241 DFS/BFS 求连通块

0)         遍历所有点,求出连通块的数量,每到一块油田,就采用DFS或者BFS消除该油田以及附近连通的油田。         注意(易错):                ①二维数组ma...
  • a272846945
  • a272846945
  • 2016-05-11 11:56:07
  • 2351

poj 2386 Lake Counting(深搜)

题目地址 题目大意:有一个大小为N*M的园子,雨后积了很多水。八连通的积水被认为是在一起的。请求出园子里共有多少个水洼?(八连通是指相邻的八个方向) 解题思路:找到一个‘W’对其周围也是‘W’的进...
  • booyoungxu
  • booyoungxu
  • 2015-07-26 10:59:52
  • 514

杭电1241 HDU acm --Oil Deposits---DFS深度优先算法实现详解

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1241 又是经典搜索题!还是那句话,数据量小,要求简单,果断DFS! 这道题目跟以前的题目稍...
  • zhuihunmiling
  • zhuihunmiling
  • 2013-05-27 14:15:33
  • 2391

ACM-LakeCounting

//有一个大小为N*M的园子,雨后积起了水。八连通的积水被认为是连接在一起的。请求出园子里总共有多少水洼? //input // N=10,M=12 //W........WW. //.WWW.......
  • csx0987
  • csx0987
  • 2015-05-03 20:02:23
  • 347

hdoj 1241 【DFS】

Oil Deposits Problem Description The GeoSurvComp geologic survey company is responsible for det...
  • qq_21654717
  • qq_21654717
  • 2015-08-04 11:11:10
  • 392

水洼

/*有一个大小为N*M的园子,雨后积起了水。八连通的积水被认为是连接在一起的。请 求出园子里总共有多少水洼 (八连通指的是下图中相对W的*部分) *** *W* *** 输入 10 12 W....
  • zhulingyan1018
  • zhulingyan1018
  • 2016-03-30 16:50:47
  • 361

POJ N0.2386 Lake Counting(求连通块数量)

题目描述: 有一个大小为N*M的园子,雨后积水。八连通的积水被认为是一个水洼,求园子共有多少水洼。 八连通示意图(相对W的连通部分用*标记) *  *  * * W * *  *  * 限...
  • kalilili
  • kalilili
  • 2014-12-19 22:15:14
  • 656
收藏助手
不良信息举报
您举报文章:1241水dfs连接在一起的算一个
举报原因:
原因补充:

(最多只允许输入30个字)