Poj 2386 Lake Counting
2016-01-13 17:57
316 查看
Lake Counting
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
Sample Output
Hint
OUTPUT DETAILS:
There are three ponds: one in the upper left, one in the lower left,and one along the right side.
Source
USACO 2004 November
思路:简单的搜索,每次找到一个W就从这个W开始,遍历所有相邻的W
AC代码如下
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 25835 | Accepted: 12979 |
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
Hint
OUTPUT DETAILS:
There are three ponds: one in the upper left, one in the lower left,and one along the right side.
Source
USACO 2004 November
思路:简单的搜索,每次找到一个W就从这个W开始,遍历所有相邻的W
AC代码如下
#include <iostream> using namespace std; const int maxn=100+5; int vis[maxn][maxn]; char mp[maxn][maxn]; int xx[]={1,1,1,-1,-1,-1,0,0}; int yy[]={1,-1,0,1,-1,0,1,-1}; int n,m; void dfs(int x,int y){ vis[x][y]=1; mp[x][y]='.'; for(int i=0;i<8;i++){ int tx=xx[i]+x; int ty=yy[i]+y; if(tx>=0 && tx<n && ty>=0 && ty<m && !vis[tx][ty] && mp[tx][ty]=='W') dfs(tx,ty); } } int main(){ cin>>n>>m; for(int i=0;i<n;i++) cin>>mp[i]; int cnt=0; for(int i=0;i<n;i++) for(int j=0;j<m;j++) if(!vis[i][j] && mp[i][j]=='W'){ cnt++; dfs(i,j); } cout<<cnt<<endl; return 0; }
相关文章推荐
- 阻塞队列--LinkedBlockingQueue
- 普通项目转Maven项目工具
- Ubuntu 15.04下MySQL 5.6.25不支持中文解决办法
- php从5.4以后自带web服务器
- javascript获取时间的各个部分
- PL/SQL教程之三:流程控制
- SDWebImage清除某一特定url的图片缓存
- 2015年程序员薪资调查报告
- Unity3d 综合性能窍门
- WordPress与Drupal的Nginx配置rewrite重写规则示例
- Qt文件夹遍历
- 2016-1-13 Struts2页面赋值遇到的问题 JQuery validate取消校验问题
- @produces在spring mvc中是什么意思
- git push 使用总结
- 创业的第一百零七天
- [转] TF-IDF与余弦相似性的应用(一):自动提取关键词
- 文件的基本处理
- 开博啦~博啦~啦~~~
- 欢迎使用CSDN-markdown编辑器
- 【Android 多媒体开发】 MediaPlayer 状态机 接口 方法 解析