POJ 2386 Lake Counting

来源:互联网 发布:js数字递增特效代码 编辑:程序博客网 时间:2024/06/08 16:42

自招上有大笔的富裕时间决定重新整理学习的程序,就开了一个CSDN,第一次写博客整理代码,当然要从简单的开始啦啦啦。


Lake Counting
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 34574 Accepted: 17163

Description

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. 

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 12W........WW..WWW.....WWW....WW...WW..........WW..........W....W......W...W.W.....WW.W.W.W.....W..W.W......W...W.......W.

Sample Output

3

题目大意:

在一个空地里有几摊水,八联通的水被看做是同一摊,问一共有几摊水。


一想就应该是搜索(写了好几次发现已经基本不会搜索了),BFS不说直接放代码。


#include#include#include#include#includeusing namespace std;int dx[8]={-1,-1,-1,0,1,1,1,0};int dy[8]={-1,0,1,1,1,0,-1,-1};queue  quex,quey;int ans;bool field[101][101];char a[101][101];int n,m;void BFS(){int x=quex.front(),y=quey.front();quex.pop();quey.pop();for (int i=0;i<8;i++){int nx=x+dx[i],ny=y+dy[i];if (nx>=0 && nx=0 && ny


不得不说手确实已经生了。。读字符的时候因为没加getchar结果把换行符读进去了,查了老半天,云里雾里的。。

0 0
原创粉丝点击