POJ - 2386 (dfs深度优先搜索)

题目正文:
Due to recent rains, water has pooled in various places in Farmer John’s field, which is represented by a rectangle of N x M (1 <= N <= 100; 1 <= M <= 100) squares. Each square contains either water (‘W’) or dry land (’.’). Farmer John would like to figure out how many ponds have formed in his field. A pond is a connected set of squares with water in them, where a square is considered adjacent to all eight of its neighbors.
//由于最近的降雨,许多地方的水都汇集在农民约翰的田地里,它的代表是一个矩形的NxM(1<=N<=100;1<=M<=100)平方。每个广场都有水(‘W’)或旱地(‘.’)。农夫约翰想知道他的田地里形成了多少池塘。池塘是一组连在一起的正方形,里面有水,其中一个正方形被认为与它的八连通 //

Given a diagram of Farmer John’s field, determine how many ponds he has.
Input

  • Line 1: Two space-separated integers: N and M
  • Lines 2…N+1: M characters per line representing one row of Farmer John’s field. Each character is either ‘W’ or ‘.’. The characters do not have spaces between them.

Output

  • Line 1: The number of ponds in Farmer John’s field.

Sample Input

10 12

Sample Output

3

Hint

OUTPUT DETAILS:
There are three ponds: one in the upper left, one in the lower left,and one along the right side.
//有三个池塘:一个在左上角,一个在左下角,一个在右边。

题目解析:

对于每一个W,它周围的W(浅绿色)都算是跟它连在一起的,直到不能再继续连下去,则算一个池塘。
因此

sample output 的3就是这么来的。
很明显就是简单的dfs,这种地图的最好做了。

AC代码如下:

#include<stdio.h>
char field[100][100];   //地图
int N,M;
void dfs(int i,int j)
{   int x,y;int nx,ny;field[i][j]='.';       //表示搜索过,进行替换for(x=-1;x<=1;x++)for(y=-1;y<=1;y++)   {nx=i+x,ny=j+y; //即代表一个九宫格里面对于中央的W周围的各个位置的方向。if(0<=nx&&nx<N&&0<=ny&&ny<M&&field[nx][ny]=='W') dfs(nx,ny);//如果没有出界而且而且搜索到周围的W,继续dfs}
}
int main()
{int i,j,sum=0;void dfs(int i,int j);  //函数声明scanf("%d %d",&N,&M);for(i=0;i<N;i++){    for(j=0;j<M;j++)scanf(" %c",&field[i][j]);  //输入}for(i=0;i<N;i++){for(j=0;j<M;j++)if(field[i][j]=='W') {dfs(i,j);sum++;}  //找到一个W,则进行dfs}printf("%d\n",sum);return 0;
}

POJ - 2386 (dfs简单应用)相关推荐

  1. POJ 2386 dfs求连通块

    题目: 由于近期的降雨,雨水汇集在农民约翰的田地不同的地方.我们用一个 的网格图表示.每个网格中有水(W) 或是旱地(.).一个网格与其周围的八个网格相连,而一组相连的网格视为一个水坑.约翰想弄清楚他 ...

  2. POJ 2386 Lake Counting [DFS]

    POJ 2386 Lake Counting 简单的DFS,用了stack代替递归,输入有问题,搞了蛮久,算法是没问题.所以以后一定要记得加上检查输入的那一步 然后对于点的定义以后就这么办吧 此外还有 ...

  3. G - dfs POJ - 2386

    G - dfs POJ - 2386 Due to recent rains, water has pooled in various places in Farmer John's field, w ...

  4. Lake Counting POJ - 2386

    Due to recent rains, water has pooled in various places in Farmer John's field, which is represented ...

  5. poj 2386 Lake Counting

    poj   2386   Lake Counting                           题目链接:http://poj.org/problem?id=2386 题目大意:数湖. 题目 ...

  6. A - 棋盘问题 POJ - 1321(dfs)

    A - 棋盘问题 POJ - 1321 dfs 复杂度计算: dfs共进行a步,每步需要循环n次,复杂度为 a^n次方 首先是暴力 an*n,果然炸了 #include<cstdio> # ...

  7. POJ 2386 Lake Counting DFS水水

    http://poj.org/problem?id=2386 题目大意: 有一个大小为N*M的园子,雨后积起了水.八连通的积水被认为是连接在一起的.请求出院子里共有多少水洼? 思路: 水题~直接DFS ...

  8. POJ 2386(DFS)

    深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次. 举例说明之:下图是一个无向 ...

  9. DFS 之 poj 2386 Lake Counting

    // [11/1/2014 JmingS] /* 遍历整个图,找到 'W' 的点,对其周围八个点其进行深搜,若是 'W' 则用 '.' 替换. 最后,在遍历整个图的过程中,找到多少个 'W',即答案. ...

最新文章

  1. 报名 | 智进未来:AI在医疗健康领域的应用、挑战及发展趋势
  2. java富文本编辑器KindEditor
  3. 一个大型网游需要哪些代码块_你会因为网游的非公平性,而转投单机游戏阵营吗?...
  4. JSP利用servlet上传文件时的中文乱码问题
  5. VTK:Utilities之MassProperties
  6. 【高精】Gift(jzoj(gz) 1763)
  7. linux 4.1.16 ftrace 进程调度,Linux内核进程调度overview(1)
  8. Python入门:局部变量与全局变量2
  9. c语言存储大范围整形,C语言整形数值范围问题
  10. 电子信息计算机调剂到能源动力,江苏科技大学机械、电子信息、电子信息能源动力、土木水利2020年考研调剂信息...
  11. python导入selenium快捷键_python,_Selenium工具自动打开的浏览器和用快捷方式打开的样式不一样?,python - phpStudy...
  12. JavaSE重点之集合、IO、多线程
  13. 产品的思维与技术的思维差异
  14. ubuntu 下安装 face_recognition
  15. GND-VDD-VCC-VSS-VEE-VPP-GND
  16. 几个好用的扩展程序,谷歌和火狐的
  17. GraPhlAn教程中文版——超炫物种树进化树绘制
  18. Trends in Plant Science | 植物微生物群失调与安娜-卡列尼娜原则
  19. 考研英语作文 独家手写笔记
  20. 下载 JDK LTS 版本安装

热门文章

  1. 英语学习app开发笔记
  2. engineercms利用pdf.js制作连续看图功能
  3. MotionBuilder笔记
  4. CocosCreator接入穿山甲广告(IOS)
  5. 网站模板_企业网站模板平台_企业网站模板套用教程
  6. web项目-estore商城系统
  7. 光模块的中心波长和传输距离
  8. java jpanel的使用_Java JPanel的使用
  9. 控制字符串长度(中英文保持一致) .
  10. 功能完备的入门手柄,手感出色又耐用,北通蝙蝠4体验