POJ Lake Counting
来源:互联网 发布:办公软件使用说明 编辑:程序博客网 时间:2024/06/12 13:25
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 12
W........WW.
.WWW.....WWW
....WW...WW.
.........WW.
.........W..
..W......W..
.W.W.....WW.
W.W.W.....W.
.W.W......W.
..W.......W.
Sample Output
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 12
W........WW.
.WWW.....WWW
....WW...WW.
.........WW.
.........W..
..W......W..
.W.W.....WW.
W.W.W.....W.
.W.W......W.
..W.......W.
Sample Output
3
这一题算是非常基础的深度优先搜索题,就是找到‘W’,进行dfs(),运行是将'W' 改成‘.’
AC代码:
# include <cstdio>using namespace std;char g[110][110];int m, n;void dfs(int x, int y){ g[x][y]='.'; for(int i=-1; i<=1; i++){ for(int j=-1; j<=1; j++){ if(x+i>=0&&x+i<=m-1&&y+j<=n-1&&y+j>=0&&g[x+i][y+j]=='W'){ dfs(x+i, y+j);}}}}int main(){int i, j, k, ans;while(scanf("%d%d", &m, &n)!=EOF){getchar();for(i=0; i<=m-1; i++){scanf("%s", g[i]);}ans=0;for(i=0; i<=m-1; i++){for(j=0; j<=n-1; j++){if(g[i][j]=='W'){ans++;dfs(i,j);}}}printf("%d\n", ans);}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 2358 Lake Counting
- poj 2386 Lake Counting
- POJ 2386 Lake Counting
- POJ 2386 Lake Counting
- poj 2386 Lake Counting
- POJ - Lake Counting(DFS)
- POJ 2386 Lake Counting
- POJ 2386 Lake Counting
- POJ-2386-Lake Counting
- POJ 2386 Lake Counting
- poj 2386 Lake Counting
- android自定义下拉刷新上拉更新的ListView
- 广东工业大学2016校赛决赛 A: Krito的讨伐
- Jquery学习之旅之 动画 animate
- Java Executor 框架
- [LeetCode]206. Reverse Linked List
- POJ Lake Counting
- TYPEAHEAD helloworld
- 【Java集合源码剖析】Hashtable源码剖析
- 第八周实践项目1————数组做数据成员(1)
- 安卓编程
- 警惕使用NSTimer时的循环引用
- Struts2从后台传递数据到前台的主要方法和流程
- 子类继承父类的虚函数调用
- SecureCRT实用配置