Lake Counting (POJ No.2386)
有一个大小为N*M的园子,雨后积起了水,八连通的积水被认为是链接在一起的求出园子里一共有多少水洼?
***
*W*
***
/**
*进行深度优先搜索,从第一个W开始,将八个方向可以到达的 W修改为 .
*每次进行深度优先搜索的时候就将链接的水坑换成了.
*进行的深度优先搜索的次数就是水坑数
*/
#include<stdio.h>
#include<string.h>
const int MAX=;
int N,M;
char filed[MAX][MAX]; //园子的构造
//现在的位置(x,y)
void dfs(int x,int y){
//将现在所在的位置替换为‘.’
filed[x][y]='.';
//循环遍历移动的8个方向
for(int dx=-;dx<=;dx++){
for(int dy=-;dy<=;dy++){
int nx=x+dx,ny=y+dy;
//判断(nx,ny是不是在园子内,以及是否有积水)
if(<=nx && nx<N && <=ny && ny<M && filed[nx][ny]=='W')
dfs(nx,ny);
}
}
return;
}
void solve(){
int res=;
for(int i=;i<N;i++)
for(int j=;j<M;j++){
if(filed[i][j]=='W'){
dfs(i,j); //从有积水的地方开始遍历,遍历的次数就是水坑的个数
res++;
}
}
printf("%d\n",res);
}
int main(){
while(scanf("%d%d",&N,&M)==){
getchar();
for(int i=;i<N;i++)
for(int j=;j<M;j++)
scanf("%c",&filed[i][j]);
solve();
}
return ;
}
Lake Counting (POJ No.2386)的更多相关文章
- Lake Counting(poj 2386)
题目描述: Description Due to recent rains, water has pooled in various places in Farmer John's field, wh ...
- Lak3 Counting(POJ No.2386)
问题描述: 有个大小为N*M的园子,雨后积起了水.八连通的积水被认为是连接在一起的.求出园子里总共有多少水洼. N, M <= 100 输入例: : 问题分析: 八连通即:上.左上.左,左下,下 ...
- DFS----Lake Counting (poj 2386)
Lake Counting(POJ No.2386) Description Due to recent rains, water has pooled in various places in Fa ...
- POJ 2386 Lake Counting(深搜)
Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 17917 Accepted: 906 ...
- POJ 2386 Lake Counting
Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 28966 Accepted: 14505 D ...
- [POJ 2386] Lake Counting(DFS)
Lake Counting Description Due to recent rains, water has pooled in various places in Farmer John's f ...
- POJ 2386 Lake Counting(搜索联通块)
Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 48370 Accepted: 23775 Descr ...
- POJ:2386 Lake Counting(dfs)
Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 40370 Accepted: 20015 D ...
- poj 2386:Lake Counting(简单DFS深搜)
Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18201 Accepted: 9192 De ...
随机推荐
- 理解mcelog如何工作
前言 本文,带你了解几个问题? 本文重点,主要看案例2,带你很好的理解mcelog如何工作的? mcelog的干什么的? mcelog 是 x86 的 Linux 系统上用来 检查硬件错误,特别是内存 ...
- Direct3D 纹理映射
纹理映射是将2D的图片映射到一个3D物体上面,物体上漂亮图案被称为纹理贴图, 一个表面可以支持多张贴图等等,下面简单介绍下纹理贴图 纹理贴图UV: 贴图是一个个像素点组成,每一个像素点都由一个坐标最后 ...
- 在iOS上present一个半透明的viewController
UIViewController *viewController = [[UIViewController alloc]init]; UIViewController* controller = se ...
- Linux环境 Mysql新建用户和数据库并授权
测试环境:linux 和Mysql 5.5.35 一.新建用户 //登录Mysql@>mysql -u root -p@>密码//创建用户mysql> insert into mys ...
- 【软件技巧】Sublime Text为不同语法定义不同高亮
Sublime Text默认的语法高亮已经非常美丽了,可是对于个别语言还是有些不爽. 默认高亮规则叫Monokai,能够从Preferences->Settings - Default中看到: ...
- Laravel 安装指南
http://www.golaravel.com/article/laravel-installation-guide/ http://laravel.com/api/4.1/ http://ding ...
- [转]轻量级 Java Web 框架架构设计
工作闲暇之余,我想设计并开发一款轻量级 Java Web 框架,看看能否取代目前最为流行的而又越来越重的 Spring.Hibernate 等框架.请原谅在下的大胆行为与不自量力,本人不是为了重造轮子 ...
- Guava源码分析——ServiceManager
ServiceManager类: 用于监控服务集的管理器,该类提供了诸如startAsync.stopAsync.servicesByState方法来运行.结束和检查服务集,而且,通过监听器 ...
- [RxJS] Reactive Programming - Why choose RxJS?
RxJS is super when dealing with the dynamic value. Let's see an example which not using RxJS: var a ...
- Linux UGO和ACL权限管理
自主访问控制(Discretionary Access Control, DAC)是指对象(比如程序.文件.进程)的拥有者可以任意修改或者授予此对象相应的权限.Linux的UGO(User, Grou ...