zoukankan      html  css  js  c++  java
  • poj 3620

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

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

          的湖泊,求最大的湖泊。

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

    #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;
    }
  • 相关阅读:
    ssh免密登录
    jdk安装
    jq选择器
    使用<button></button>标签
    mysql连接字符串
    如何把maven项目转成web项目
    pl/sql连接远程oracle
    Oracle 存储过程
    SQL Server存储过程
    MySQL存储过程
  • 原文地址:https://www.cnblogs.com/jin-nuo/p/5519624.html
Copyright © 2011-2022 走看看