前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >poj 3620

poj 3620

作者头像
瑾诺学长
发布2018-09-21 16:38:40
3840
发布2018-09-21 16:38:40
举报
文章被收录于专栏:专注研发

题意:给出一个矩阵,其中有些格子干燥、有些潮湿。

      如果一个潮湿的格子的相邻的四个方向有格子也是潮湿的,那么它们就可以构成更大

      的湖泊,求最大的湖泊。

      也就是求出最大的连在一块儿的潮湿的格子的数目。

代码语言:javascript
复制
#include<iostream>
#include<cstring>
using namespace std;
int aa[105][105]={0};
int dir[4][2]={-1,0,1,0,0,-1,0,1};
int sum=0,ans=0,n,m,k;
void dfs(int a,int b)
{
    int a1,b1;
    ans++;
    aa[a][b]=0;                 
    for(int i=0;i<4;i++)
    {
        a1=a+dir[i][0];
        b1=b+dir[i][1];
        if(a1>=1&&a1<=n&&b1>=1&&b1<=m&&aa[a1][b1])
            dfs(a1,b1);
            //不用回溯的原因,因为只要是能连续到达的店连成湖的肯定都能连一块的;
            
    }
}
int main()
{
    cin>>n>>m>>k;
    for(int i=0;i<k;i++)
    {int x,y;
        cin>>x>>y;

        aa[x][y]=1;

    }
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
    {   if(aa[i][j])
    {   ans=0;
        dfs(i,j);
        if(ans>sum)sum=ans;
    }
    }
    cout<<sum<<endl;


    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-05-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档