小蝌蚪安家 bjfu 1143 广度优先遍历
描述
在一个矩形区域内,有些地方有水,有些地方没水。所有相邻的有水的地方会共同组成一个水洼,小蝌蚪想在这块区域中找到一个最大的水洼来安家。
输入
有多组输入数据,每组第一行包含两个正整数n,m(n,m<=100),接下来n行,每行m个字符,“.”表示有水,“#”表示没水。
输出
对于每组输入数据输出一行,包含一个整数,表示最大的水洼的面积。
样例输入
3 3
###
###
##.
2 3
#..
..#
3 3
##.
#..
.##
样例输出
1
4
3
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
#define SIZE 100
char map[SIZE][SIZE];
bool visited[SIZE][SIZE];struct node{int x,y;
};int BFS(int n,int m){int i,j,count,max=0;node tmp,p;queue<node> path;for (i=0;i<n;i++)for (j=0;j<m;j++){if (map[i][j]=='#')visited[i][j]=true;else if (map[i][j]=='.')visited[i][j]=false;}for (i=0;i<n;i++)for (j=0;j<m;j++)if (!visited[i][j]){count=0;tmp.x=i;tmp.y=j;path.push(tmp);visited[tmp.x][tmp.y]=true;while (!path.empty()){p=path.front();count++;path.pop();if (p.x-1>=0&&!visited[p.x-1][p.y]){tmp.x=p.x-1;tmp.y=p.y;path.push(tmp);visited[tmp.x][tmp.y]=true;}if (p.x+1<n&&!visited[p.x+1][p.y]){tmp.x=p.x+1;tmp.y=p.y;path.push(tmp);visited[tmp.x][tmp.y]=true;}if (p.y-1>=0&&!visited[p.x][p.y-1]){tmp.x=p.x;tmp.y=p.y-1;path.push(tmp);visited[tmp.x][tmp.y]=true;}if (p.y+1<m&&!visited[p.x][p.y+1]){tmp.x=p.x;tmp.y=p.y+1;path.push(tmp);visited[tmp.x][tmp.y]=true;}}if (count>max)max=count;}return max;
}int main(){int n,m,i,j;while (scanf("%d%d",&n,&m)!=EOF){getchar();for (i=0;i<n;i++){for (j=0;j<m;j++)scanf("%c",&map[i][j]);getchar();}printf("%d\n",BFS(n,m));}return 0;
}
赤裸裸的广搜题。~~嘿嘿,第一次写,AC了很开心。~。
小蝌蚪安家 bjfu 1143 广度优先遍历相关推荐
- #问题求解与编程# 实验三 G小蝌蚪安家
小蝌蚪安家 发布时间: 2018年4月2日 20:48 时间限制: 1000ms 内存限制: 128M 描述 在一个矩形区域内,有些地方有水,有些地方没水.所有相邻的有水的地方会共同组成一个水 ...
- bjfu1143 小蝌蚪安家 解题报告
搜索没判断重复 导致各种bug 广搜栈空间超了 深搜有调试了半天 真的无语了 记录一下 校内放了链接校外也访问不了 直接放题目 用visit数组记录是否出现在队列里面 数据结构学好 并且做的题目少的可 ...
- bjfu 1143 小蝌蚪安家(bfs入门)
本人的第一题bfs搜索: 在一个矩形区域内,有些地方有水,有些地方没水.所有相邻的有水的地方会共同组成一个水洼,小蝌蚪想在这块区域中找到一个最大的水洼来安家. Input 有多组输入数据,每组第一行包 ...
- ACM 小蝌蚪安家 简单DFS
描述 在一个矩形区域内,有些地方有水,有些地方没水.所有相邻的有水的地方会共同组成一个水洼,小蝌蚪想在这块区域中找到一个最大的水洼来安家. 输入 有多组输入数据,每组第一行包含两个正整数n,m(n,m ...
- 邻接表存储图的广度优先遍历
试实现邻接表存储图的广度优先遍历. 函数接口定义: void BFS ( LGraph Graph, Vertex S, void (*Visit)(Vertex) ); 其中LGraph是邻接表存储 ...
- 数据结构与算法:终于可以用三种语言(C,C#,JavaScript)把图的广度优先遍历讲清楚了(推荐收藏)
文章目录 邻接矩阵存储图的广度优先遍历过程分析 C语言实现队列编程 程序中加入图的处理函数 结果的再次分析 C#语言实现图的广度优先遍历.并显示广度优先遍历生成树 JavaScript语言实现图的广度 ...
- [js] 解释下深度优先遍历和广度优先遍历的区别及如何实现
[js] 解释下深度优先遍历和广度优先遍历的区别及如何实现 1.深度优先采用堆栈结构,先进后出,所占的空间较小,执行时间较长: 2.广度优先采用队列结构先进先出,所占空间较大,执行时间短,空间换时间: ...
- 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构与算法学习笔记:图...
图: 图结构区别于线性结构和树型结构,区别可见下图 逻辑上的图(graph)结构由顶点(vertex)和边(edge)组成. 一个图结构G包含顶点集合V和边集合E,任何两个顶点之间可以有一个边表示两者 ...
- 深度、广度优先遍历算法python
文章目录 一.深度优先 1.怎么抓住小偷 2.二叉树中的最大路径和 3.最大的岛屿 二.广度优先 1.树的右侧 2.合法的括号 3.寻找制高点 4.选课的智慧 一.深度优先 该篇学习笔记来自于< ...
最新文章
- ajax请求php保存数据格式,jQuery ajax与php进行数据交互(数据格式问题)
- java hashmap 输出_JAVA如何把HashMap内容输出到文本文件
- EPSON TCP/IP 通信
- __macosx_在5分钟内在MacOSX Lion中设置JAVA_HOME,MAVEN_HOME,ANT_HOME
- R语言爬虫系列6|动态数据抓取范例
- electron打包exe文件
- python回测函数_Python事件化回测双均线
- Express框架学习笔记-post请求参数的获取
- 如何VARCHART XGantt编写PDF文件
- 3D立体显示大屏幕拼接视频墙系统解决方案
- dtu连接mysql_数据中心使用dtu远程连接oracel 9i数据库问题
- 怎么样计算机械功率,电功率与机械功率的换算公式
- 2021牛客多校10F Train Wreck (贪心,思维题)
- 对腾讯云qcloud音视频通信SDK的调研(优缺点)
- 冲刺误区 | 一场失败的谷歌设计冲刺实践给我的启示
- 计算机开机显示器闪,电脑开机后显示器闪烁怎么办
- 小试ESP8266(一) 一只电阻, 几条语句, 摆脱深度睡眠反复重启的困扰
- java severlet 获取当前路径_Java 获取当前路径的方法总结
- Java语言发展简史
- pip3在Ubuntu下的安装、升级、卸载