博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深搜-寻找最大连同湖
阅读量:5886 次
发布时间:2019-06-19

本文共 1167 字,大约阅读时间需要 3 分钟。

题意:有一个n*m大的农场,其中每一方格不是干旱就是潮湿,现在给出k个潮湿的方格信息(即每个潮湿方格的坐标),如果每个方格与其四连通的其中一个方格连通则构成一个湖泊,该湖泊所包含的方格数就是该湖泊的大小,现在要求构成的湖泊中最大的那个湖泊所包含的方格数。

输入:

3 4 53 22 23 12 31 1 输出: 4

代码:

#include
#include
using namespace std;#define MAX 101int n, m, k, num, G[MAX][MAX], f[MAX][MAX];int dir[4][2] = {
{
1, 0}, {-1, 0}, {
0, 1}, {
0, -1}};int dfs(int p, int q){ f[p][q] = 1; for (int i = 0; i < 4; i++) { int x = p + dir[i][0]; int y = q + dir[i][1]; if (!f[x][y] && G[x][y]) { num++; dfs(x, y); } } return num;}int main(){ while (cin>>n>>m>>k) { int ans = 0; memset(f, 0, sizeof(f)); memset(G, 0, sizeof(G)); while (k--) { int x, y; cin>>x>>y; G[x][y] = 1; } for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) { if (!f[i][j] && G[i][j]) { num = 1; ans = max(ans, dfs(i, j)); } } cout<
<

转载于:https://www.cnblogs.com/xiaoying1245970347/p/3172058.html

你可能感兴趣的文章
Java8新特性之Collectors
查看>>
怎么用CorelDRAW制作表格
查看>>
eclipse智能配置
查看>>
安装Scrapy遇到的问题处理
查看>>
个人作业——软件产品案例分析
查看>>
Java学习:方法重载的使用规则
查看>>
ASP.NET MVC 防止CSRF攻击
查看>>
EF:无法检查模型兼容性,因为数据库不包含模型元数据。
查看>>
0和5
查看>>
C# WinFrom一些技术小结
查看>>
hdu5001 Walk 概率DP
查看>>
模拟select控件&&显示单击的坐标&&用户按下键盘,显示keyCode
查看>>
Mac-OSX下Ruby更新
查看>>
jsp九个内置对象
查看>>
[Python笔记][第一章Python基础]
查看>>
Bloomberg SEP 12.x 迁移小记
查看>>
生日小助手V1.1发布了——拥有更整齐的信息列表
查看>>
代理模式
查看>>
Qt 学习(1)
查看>>
MFC CEdit改变字体大小的方法
查看>>