POJ2386-Lake Counting
2016-03-30 16:47
141 查看
#include <cstdio> const int MAXN = 100; char field[MAXN+2][MAXN+2]; int n, m; void Dfs(int x, int y) { if (field[x][y] == 'W') { field[x][y] = '.'; for (int dx = -1; dx <= 1; dx++) { for (int dy = -1; dy <= 1; dy++) { int nx = x + dx; int ny = y + dy; if (0 <= nx && nx < n && 0 <= ny && ny < m && field[nx][ny] == 'W') { Dfs(nx, ny); } } } } } int main() { scanf("%d%d", &n, &m); int i, j; for (i = 0; i < n; i++) { scanf("%s", field[i]); } int cnt = 0; for (i = 0; i < n; i++) { for (j = 0; j < m; j++) { if (field[i][j] == 'W') { Dfs(i, j); cnt++; } } } printf("%d\n", cnt); return 0; }
不同于一般的种子填充法和以前常用的方式,并且没有定义一个visit数组记录是否访问过。
Dfs函数的写法使用了两个for循环嵌套的x,y偏移量dx,dy表示八个移动的访问,同时解决了地图的边缘问题。
相关文章推荐
- 很全面的关于证书,调试,打包,发布
- ScrollView嵌套GridView方法
- ocx控件注册失败常见问题
- SQL的优化整理以及时间信息(持续更新)+ 中级以上sql
- 系统重装
- FlashFXP命令行
- scrapy项目运行报错: exceptions.ImportError: No module named win32api
- css中li、a、span行内强制不换行
- Java数据结构——双端链表
- Selenium_webdriver获取iframe子页面元素
- 《C#入门经典v6》读书笔记1 C#语言
- 给大家推荐一款Sublime Text的主题”brogrammer-theme“
- JavaScript小知识之数据类型
- POJ 2104 K-th Number(快排 or 平方分割 or 归并树—求区间第k大数)
- QQ浏览器X5内核问题汇总
- 【bzoj3144】【HNOI2013】【切糕】【最小割】
- 我的读书笔记开篇啦
- 不断更新的庞大家族——Java IO
- [HTTP协议练习之一]Get请求
- 部分和问题