Lak3 Counting(POJ No.2386)
问题描述:
有个大小为N*M的园子,雨后积起了水。八连通的积水被认为是连接在一起的。求出园子里总共有多少水洼。
N, M <= 100
输入例:

:
问题分析:
八连通即:上、左上、左,左下,下,右下,右,右上。
这道题可以用深入优先搜索(DFS)的思想。
1. 寻找是水洼的点。如果找到,标记此点已经记过。
循环此点的八连通,如果是水,递归循环
2. 寻找的次数即为水洼数。
代码:
# include <iostream>
# include <fstream> using namespace std; int N, M;
char map[][]; void DFS_Search(int i, int j)
{
map[i][j] = '.';
//这样搞定八循环的方式非常棒!!!
for ( int dx = -; dx <= ; dx++)
{
for ( int dy = -; dy <= ; dy++)
{
int x = i + dx;
int y = j + dy;
if ( x >= && x <= N && y >= && y <= M && map[x][y] == 'W')
DFS_Search(x, y);
}
}
} int main()
{
int count = ;
// ifstream cin("Lake_Counting_Data.txt");
cin>>N>>M;
for( int i = ; i < N; i++)
{
for ( int j = ; j < M; j++)
{
cin>>map[i][j];
}
} for( int i = ; i < N; i++)
{
for ( int j = ; j < M; j++)
{
if ( map[i][j] == 'W' )
{
count++;
DFS_Search(i, j);
}
}
}
cout<<count<<endl;
return ;
}
Lak3 Counting(POJ No.2386)的更多相关文章
- Lake Counting (POJ No.2386)
有一个大小为N*M的园子,雨后积起了水,八连通的积水被认为是链接在一起的求出园子里一共有多少水洼? *** *W* *** /** *进行深度优先搜索,从第一个W开始,将八个方向可以到达的 W修改为 ...
- DFS----Lake Counting (poj 2386)
Lake Counting(POJ No.2386) Description Due to recent rains, water has pooled in various places in Fa ...
- 深度搜索DFS-Lake Counting(POJ NO.2386)
题目链接POJ NO.2386 解题思路: 这个也是一个dfs 的应用,在书上的例子,因为书上的代码并不全,基本都是函数分块来写,通过这个题目也规范了代码,以后能用函数的就都用函数来实现吧.采用深度优 ...
- POJ No.2386 Lake Counting
题目链接:http://poj.org/problem?id=2386 分析:八联通的则为水洼,我们则需遍历一个单位附近的八个单位并将它们都改成'.',但附近单位可能仍连接着有'W'的区域,这种情况下 ...
- POJ 之2386 Lake Counting
Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20003 Accepted: 10063 D ...
- Lake Counting(poj 2386)
题目描述: Description Due to recent rains, water has pooled in various places in Farmer John's field, wh ...
- Lake Counting(POJ No.2386)
题目描述:有一个大小为N*M的园子,八连通的积水被认为是连接在一起的.请求出园子里总共有多少水洼?(八连通指的是下图中相对w的*部分) *** *w* *** 限制条件 N,M<=100 样例 ...
- POJ No.2386【B007】
[B007]Lake Counting[难度B]—————————————————————————————————————————— [Description] Due to recent rains ...
- DP:Ant Counting(POJ 3046)
数蚂蚁 题目大意:一只牛想数蚂蚁,蚂蚁分成很多组,每个组里面有很多只蚂蚁,现在问你有多少种组合方式 (说白了就是问1,1,1,...,2...,3...,4...)这些东西有多少种排列组合方式 这一道 ...
随机推荐
- UVA - 10014 - Simple calculations (经典的数学推导题!!)
UVA - 10014 Simple calculations Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & ...
- 谷歌、火狐浏览器下实现JS跨域iframe高度自适应的完美解决方法,跨域调用JS不再是难题!
谷歌.火狐浏览器下实现JS跨域iframe高度自适应的解决方法 导读:今天开发的时候遇到个iframe自适应高度的问题,相信大家对这个不陌生,但是一般我们都是在同一个项目使用iframe嵌套页面,这个 ...
- CENTOS6.4安装lxml失败
环境如下: Centos6.4 Python 2.7.6 pip install lxml 执行上面的命令,有类似下面的提示: src/lxml/lxml.etree.c:188133: error: ...
- ajax——client访问webservice基本用法
学前aps.net当我学会了使用服务器端的访问webservice方法,然后实现一个样本:web server模拟网上购物,今天学习asp.net ajax的时候学习到了client直接訪问webse ...
- Swift语言指南(六)--可选值
原文:Swift语言指南(六)--可选值 在值可能不存在的情况下使用可选值(optional), 可选值是: · 存在一个值,这个值等于 x 或 · 不存在任何值 注: 在 C 和 Objective ...
- javascript中类的属性研究
原文:javascript中类的属性研究 本篇文章主要针对javascript的属性进行分析,由于javascript是一种基于对象的语言,本身没有类的概念,所以对于javascript的类的定义有很 ...
- Linux 时区变化
1.查看当前的时区 date -R 2.改动当前时区 tzselect 之后会出来一个选项菜单,选择你想要的时区就OK了 3.替换系统时区文件 cp /usr/share/zoneinfo/XXX/Y ...
- 浏览器扩展系列————在WPF中定制WebBrowser快捷菜单
原文:浏览器扩展系列----在WPF中定制WebBrowser快捷菜单 关于如何定制菜单可以参考codeproject上的这篇文章:http://www.codeproject.com/KB/book ...
- c# md5
还可以加盐,更难以破解 public static string GetMD5(string sDataIn) { MD5Crypt ...
- [WPF]程序全屏
原文:[WPF]程序全屏 代码: 使用: