zoukankan      html  css  js  c++  java
  • 水池数目---深搜思想

     1 //水池个数 深搜思想
     2 /*#include<stdio.h>
     3 int a[105][105],m,n;
     4 void DFS(int x,int y)
     5 {
     6     if(x<0||x>=m||y<0||y>=n)//到达边界
     7     return;
     8     if(a[x][y]!=0)//跳出
     9     {
    10         a[x][y]=0;//搜完之后 此节点置0
    11         DFS(x+1,y);//递归调用 往下搜
    12         DFS(x,y+1);//右
    13         DFS(x-1,y);//上
    14         DFS(x,y-1);//左
    15     }
    16 }
    17 int main()
    18 {
    19     int N,i,j;
    20     scanf("%d",&N);
    21     while(N--)
    22     {
    23         int sum=0;
    24         scanf("%d%d",&m,&n);
    25         for(i=0;i<m;i++)
    26         for(j=0;j<n;j++)
    27             scanf("%d",&a[i][j]);
    28        for(i=0;i<m;i++)
    29         for(j=0;j<n;j++)
    30         {
    31                 if(a[i][j]==1)//遇到 1 开始搜
    32                 {
    33                     DFS(i,j);
    34                     sum++;
    35                 }
    36                 //printf("%d ",a[i][j]);
    37 
    38         }
    39         printf("%d
    ",sum);
    40     }
    41 }*/

    输入第一行输入一个整数N,表示共有N组测试数据
    每一组数据都是先输入该地图的行数m(0<m<100)与列数n(0<n<100),然后,输入接下来的m行每行输入n个数,表示此处有水还是没水(1表示此处是水池,0表示此处是地面)输出输出该地图中水池的个数。
    要注意,每个水池的旁边(上下左右四个位置)如果还是水池的话的话,它们可以看做是同一个水池。
    样例输入

    2
    3 4
    1 0 0 0 
    0 0 1 1
    1 1 1 0
    5 5
    1 1 1 1 0
    0 0 1 0 1
    0 0 0 0 0
    1 1 1 0 0
    0 0 1 1 1

    样例输出

    2
    3
  • 相关阅读:
    Hiveserver2高可用实现
    centos7 mysql数据库安装和配置
    ubuntu18.04 安装hadoop 2.7.3+hive 2.3.4
    imx6 RGB LCD
    imx6 KEY_ROW4 power output high fail
    ar1020 驱动移植 无效
    24C02 Twr
    undefined reference to `switch_dev_unregister'
    cannot open /proc/bus/usb/devices, No such file or directory
    imx6dl i2c4 support
  • 原文地址:https://www.cnblogs.com/xiaoyunoo/p/3516871.html
Copyright © 2011-2022 走看看