POJ 2386 Lake Counting
来源:互联网 发布:sql脚本怎么执行 编辑:程序博客网 时间:2024/06/06 13:18
来源:http://poj.org/problem?id=2386
Lake Counting
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 20124 Accepted: 10139
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.
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.
* 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
Hint
OUTPUT DETAILS:
There are three ponds: one in the upper left, one in the lower left,and one along the right side.
There are three ponds: one in the upper left, one in the lower left,and one along the right side.
Source
USACO 2004 November
题意:题意题意!!! 一句话两处理解错误,,,,, 求一块田野里有多少块水域~~ 里面最关键的一句:A pond is a connected set of squares with water in them, where a square is considered adjacent to all eight of its neighbors. 开始理解成至少要两个"W"才算一块水域---还有方向,只考虑上下左右四个方向,导致一直WA..
题解: DFS(感觉又不是标准的DFS,不需要回溯)....
AC代码:
#include<iostream>#include<string>using namespace std;int dir[8][2]={ {0,1},{0,-1}, {1,0},{-1,0}, {1,1},{1,-1}, {-1,-1},{-1,1}};string map[105];int dx,dy,count=0;bool flag;void dfs(int x,int y){ for(int i=0;i<8;i++){ int tempx=x+dir[i][0],tempy=y+dir[i][1]; if(tempx>=0&&tempx<dx&&tempy>=0&&tempy<dy&&map[tempx][tempy]=='W'){ map[tempx][tempy]='.'; dfs(tempx,tempy); } }}int main(){ cin>>dx>>dy; for(int i=0;i<dx;i++) cin>>map[i]; for(int i=0;i<dx;i++) for(int j=0;j<dy;j++){ if(map[i][j]=='W'){ count++; map[i][j]='.'; dfs(i,j); } } cout<<count<<endl; return 0;}
0 0
- poj 2386 Lake Counting
- poj 2386 Lake Counting
- POJ 2386 Lake Counting
- poj 2386 Lake Counting
- poj 2386 Lake Counting
- poj 2386 Lake Counting
- POJ 2386 Lake Counting
- poj 2386 Lake Counting
- POJ 2386 Lake Counting
- POJ 2386 Lake Counting
- poj 2386 Lake Counting
- POJ 2386 Lake Counting
- POJ 2386 Lake Counting
- POJ-2386-Lake Counting
- POJ 2386 Lake Counting
- poj 2386 Lake Counting
- Poj 2386 Lake Counting
- poj 2386 Lake Counting
- Java面试题和答案解析
- Linux 程序设计学习笔记----进程管理与程序开发(下)
- XCode快捷键
- Icomparer和Icomparable用法浅谈
- 大端格式、小端格式
- POJ 2386 Lake Counting
- 北邮新生排位赛10解题报告
- hdu 1236 排名
- 全球防御 (树状数组,成段更新,单点求值)
- Android RotateAnimation动画不能旋转的问题
- unity3d NGUI buttonmessage 传参
- 关于ImageView设置GONE,不起作用
- metasploit利用IE漏洞XSS挂马拿内网主机
- oracle的number类型精度、刻度范围