zoukankan      html  css  js  c++  java
  • 水池数目(DFS)

    试题链接:点击打开链接

    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    int m,n;
    int Map[105][105];
    int color[105][105];
    int num=0;
    int area;
    int areaMax;
    
    void DFS(int i,int j)
    {
        if(color[i][j])
            return;
        area++;
        color[i][j]=num;
        if(i>1 && Map[i-1][j]==1) DFS(i-1,j); //向上走
        if(i<m && Map[i+1][j]==1) DFS(i+1,j); //向下走
        if(j>1 && Map[i][j-1]==1) DFS(i,j-1); //向右走
        if(j<n && Map[i][j+1]==1) DFS(i,j+1); //向左走
    }
    
    int main()
    {
        int N;
        cin>>N;
        while(N--)
        {
            num=0;
            cin>>m>>n;
            for(int i=1; i<=m; i++)
                for(int j=1; j<=n; j++)
                    cin>>Map[i][j];
    
            memset(color,0,sizeof(color));
    
            for(int i=1; i<=m; i++)
            {
                for(int j=1; j<=n; j++)
                {
                    if(color[i][j]==0 && Map[i][j]==1)
                    {
                        num++;
                        area=0;
                        DFS(i,j);
                        areaMax=max(area,areaMax);
                    }
                }
            }
            cout<<num<<endl;
            //cout<<areaMax<<endl;  //输出最大面积
        }
        return 0;
    }
    

  • 相关阅读:
    golang recover
    golang sort
    golang matrix
    golang encoding/json
    go package的理解
    golang beego cache
    git操作
    阿里云图标使用
    Stylus的使用
    vue-preview的使用
  • 原文地址:https://www.cnblogs.com/zhanyeye/p/9746091.html
Copyright © 2011-2022 走看看