POJ
来源:互联网 发布:mac安装win7虚拟机 编辑:程序博客网 时间:2024/06/05 19:11
Lake Counting
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 36172 Accepted: 17965
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
题意:n*m的院子里有水(W),水只要八方有水就算连着,求院子里的水洼数量。
解决:DFS八个方向
细节:
#include<iostream>#include<algorithm>using namespace std;int n , m, num = 0;char a[110][110];void dfs(int x, int y){ a[x][y] = '.'; for(int i = -1; i <= 1; i++) for(int j = -1; j <= 1; j++){ int nx = x + i, ny = y + j; if(0 <= nx && 0 <= ny && nx <= n && ny <= m && a[nx][ny] == 'W') dfs(nx, ny); } return;}int main(){ cin >> n >> m; for(int i = 0; i < n; i++) cin >> a[i]; for(int i = 0; i < n; i++) for(int j = 0; j < m; j++){ if(a[i][j]=='W'){ dfs(i, j); num++; } } cout << num << endl;}
阅读全文
0 0
- POJ
- poj
- POJ
- POJ
- poj
- poj
- POJ
- POJ
- poj
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- 三目运算符的一个坑-自动拆箱
- Linux 2.6.19.x内核编译配置选项简介
- ReduceByKey算子理解
- 正向代理与反向代理
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
- POJ
- 1084: [SCOI2005]最大子矩阵
- CS231n-assignment1-KNN篇
- Linux用户切换到root后运行图形程序报错(*GLib-GIO-CRITICAL **)
- JS入门之程序设计基础
- POJ 2739
- 了解mian函数
- Unity3D学习记录——NGUI Sprit
- 友元的使用用法: