深度优先搜索写“小蝌蚪搬家”
来源:互联网 发布:unix环境高级编程笔记 编辑:程序博客网 时间:2024/06/09 20:13
http://101.200.220.237/contest/49/problem/283/
小蝌蚪安家
在一个矩形区域内,有些地方有水,有些地方没水。所有相邻的有水的地方会共同组成一个水洼,小蝌蚪想在这块区域中找到一个最大的水洼来安家。
有多组输入数据,每组第一行包含两个正整数n,m(n,m<=100),接下来n行,每行m个字符,“.”表示有水,“#”表示没水。
对于每组输入数据输出一行,包含一个整数,表示最大的水洼的面积。
复制
3 3########.
1
复制
2 3#....#
4
复制
3 3##.#...##
3
这是一道比较简单基础的dfs题目,代码如下:
#include <stdio.h>#include<iostream>#pragma warning(disable:4996);using namespace std;#include<set>#include<algorithm>#include<cstdio>//#include<iostream>//#include<algorithm>#include<cstring>using namespace std;int n, m;//n行,每行m个字符int sum, s;int an[110][110];char bn[110][110];void dfs(int i, int j){if (i >= n || i < 0 || j < 0 || j >= m)return;if (an[i][j] == -1)return;if (an[i][j] == 1)return;an[i][j] = 1;s++;dfs(i + 1, j);dfs(i, j + 1);dfs(i, j - 1);dfs(i - 1, j);if (s > sum)sum = s;}int main(){while (scanf("%d %d\n", &n, &m) != EOF){int i, j;for (i = 0; i<n; i++)for (j = 0; j < m; j++){scanf("\n");scanf("%c", &bn[i][j]);if (bn[i][j] == '#')an[i][j] = -1;if (bn[i][j] == '.')an[i][j] = 0;}sum = 0;for (i = 0; i<n; i++)for (j = 0; j < m; j++){dfs(i, j);s = 0;}printf("%d\n",sum);}return 0;}
阅读全文
0 0
- 深度优先搜索写“小蝌蚪搬家”
- 小谈深度优先搜索
- 深度优先搜索/广度优先搜索(解决小哈)
- 小蝌蚪
- 小蝌蚪
- 小蝌蚪安家 bjfu 1143 广度优先遍历
- 【自己动手写数据结构】 -- 图的深度优先搜索算法
- 深度优先搜索
- 深度优先搜索
- 深度优先搜索 DFS
- 深度优先搜索遍历
- 深度优先搜索 DFS
- 深度优先搜索
- 深度优先搜索
- 深度优先搜索算法
- hdoj1015Safecracker(深度优先搜索)
- [AI]深度优先搜索
- 深度优先搜索算法
- Java 读写Properties配置文件
- HDU 6085 Rikka with Candies (bitset, 2017 Multi-Univ Training Contest 5)
- map(macro average precision) 与 F1score
- phpstrom2017.2.1 安装、注册
- PhpStorm 2017.2.1 激活和汉化
- 深度优先搜索写“小蝌蚪搬家”
- Selenium模拟JQuery滑动解锁
- localStorage和sessionStorage区别
- 如何在PDF中删除页面的两大技巧介绍
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现
- scp传输失败
- FCC——Spinal Tap Case
- CSS3-基本选择器
- win7安装Qt4.8.5 For Windows 最详细的教程,附带所有安装文件-- 转自zgj_today的csdn空间