题意是这种。给你一个N*M的矩形图。这个图由两个东西组成。'.'和'W',

W代表这个地方有水。

.代表这个地方没水。

假设一个有水的地方它的上下左右,左上,坐下。右上。右下也有水,那么

就看成它们连成一块,连在一起的有水的地方看成一个水洼。

如今告诉你N和M以及这个矩形图。要你推断图中有多少个水洼。

我是用dfs做的。

详细做法是首先找一个有水的点,然后假设这个地方有水。则水洼数+1,

然后从这个点出发。进行dfs,把与它相连的有水的地方都变成没水的地方,

也就是'.'。这种话,最后得出的水洼数就是题意所要求的。

代码例如以下

#include<iostream>
using namespace std;
int row,line;
char map[110][110];
void init()
{
int i,j;
scanf("%d%d",&row,&line);
for(i=0;i<row;i++)
scanf("%s",map[i]);
}
bool isbeyond(int i,int j)
{
if(i<0||i>=row||j<0||j>=line)
return 1;
return 0;
}
void dfs(int i,int j)
{
int x,y;
map[i][j]='.';
for(x=-1;x<2;x++)
for(y=-1;y<2;y++)
if(!isbeyond(i+x,j+y)&&map[i+x][j+y]=='W')
dfs(i+x,j+y);
}
void solve()
{
int sum=0,i,j;
init();
for(i=0;i<row;i++)
for(j=0;j<line;j++)
if(map[i][j]=='W')
{
sum++;
dfs(i,j);
}
printf("%d\n",sum);
}
int main()
{
solve();
}

poj2386Lake Counting的更多相关文章

  1. POJ-2386Lake Counting,搜索题。。

    Lake Counting Time Limit: 1000MS   Memory Limit: 65536K           Description Due to recent rains, w ...

  2. POJ2386----Lake Counting

    /* 利用宽搜将每块积水填满,添加一个计数器,记下填满几块积水即答案 */ #include<iostream> using namespace std; ][]; ][] = {{-,- ...

  3. 萌新笔记——Cardinality Estimation算法学习(二)(Linear Counting算法、最大似然估计(MLE))

    在上篇,我了解了基数的基本概念,现在进入Linear Counting算法的学习. 理解颇浅,还请大神指点! http://blog.codinglabs.org/articles/algorithm ...

  4. POJ_2386 Lake Counting (dfs 错了一个负号找了一上午)

    来之不易的2017第一发ac http://poj.org/problem?id=2386 Lake Counting Time Limit: 1000MS   Memory Limit: 65536 ...

  5. ZOJ3944 People Counting ZOJ3939 The Lucky Week (模拟)

    ZOJ3944 People Counting ZOJ3939 The Lucky Week 1.PeopleConting 题意:照片上有很多个人,用矩阵里的字符表示.一个人如下: .O. /|\ ...

  6. find out the neighbouring max D_value by counting sort in stack

    #include <stdio.h> #include <malloc.h> #define MAX_STACK 10 ; // define the node of stac ...

  7. 1004. Counting Leaves (30)

    1004. Counting Leaves (30)   A family hierarchy is usually presented by a pedigree tree. Your job is ...

  8. 6.Counting Point Mutations

    Problem Figure 2. The Hamming distance between these two strings is 7. Mismatched symbols are colore ...

  9. 1.Counting DNA Nucleotides

    Problem A string is simply an ordered collection of symbols selected from some alphabet and formed i ...

随机推荐

  1. spring MVC拦截器01

    spring MVC拦截 作用:身份校验,权限检查,防止非法訪问. 场景:一个bbs系统,用户没有登录就无法发帖或者删除评论; 一个博客系统,没有登录就无法发表博文,无法添加分类,无法删除博文. sp ...

  2. 使用RouteDebugger对MVC路由进行调试

    在Asp.Net MVC程序中,路由是MVC程序的入口,每一个Http请求都要经过路由计算,然后匹配到相应的Controller和Action.通常我们的路由都会注册在Global.asax.cs文件 ...

  3. Wix打包系列 (六)制作升级和补丁包

    原文:Wix打包系列 (六)制作升级和补丁包 前面我们已经知道怎么制作一个完整安装包了,但我们的软件往往不能一次性就满足客户的需要,当客户需要我们给软件进行升级的时候,我们应该怎么做呢? 在这之前,我 ...

  4. 23、Cocos2dx 3.0游戏开发找小三之粒子系统:你那里下雪了吗?

    重开发人员的劳动成果.转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/30485919 春雨惊春清谷天,夏满芒夏暑相连, 秋处 ...

  5. 阿里云免费试用之体验——阿里云serverECS试用心得

    自上次參加了阿里云的开发人员大会回来 心里就一直惦记着阿里云 由于曾经各种各样什么的server也用了不少 年前開始接触阿里云 一直没有给予很多其它的关注 參加了这次的开发人员大会后 就想更进一步的了 ...

  6. 如何做程序猿SOHO它定购家庭赚外快?

    做为一名程序猿.我想大多数人除了平时削尖了脑袋研究各种各样的技术之外. ArticleId=28404183" width="1" height="1" ...

  7. Linux下SVN安装配置全程实录(转)

    一.安装SVN默认安装到/usr/local/bin下面 二.创建仓库 svnadmin create /home/svnrepo /root/svnrepo为所创建仓库的路径,理论上可以是任何目录 ...

  8. hdu 折线切割平面 (java)

    问题: 仅仅要找到规律问题就攻克了,在做题时应该细致去发现数与数之间的联系. 折线切割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit ...

  9. thinkphp中field的用法

    ThinkPHP的连贯操作方法中field方法有很多的使用技巧,field方法主要目的是标识要返回或者操作的字段,下面详细道来. 1.用于查询 在查询操作中field方法是使用最频繁的. $Model ...

  10. 3DMax的OFusion插件使用问题

    使用OFusion将3D max场景导出为Ogre的Mesh是非经常常使用的方法.这里汇总一些问题方便查阅. 1.OFusion获取: http://download.csdn.net/detail/ ...