zoukankan      html  css  js  c++  java
  • 南阳27--水池数目(简单Dfs)

     

    水池数目

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:4
     
    描述
    南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地图上仅标识了此处是否是水池,现在,你的任务来了,请用计算机算出该地图中共有几个水池。
     
    输入
    第一行输入一个整数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
    来源
    [张云聪]原创
    上传者
    张云聪
    ac:虽然说这题很水, 但也大致是自己想出来的 没有恶心的回溯 → → ;
     1 #include <cstdio>
     2 #include <cstring>
     3 #include <iostream>
     4 using namespace std;
     5 int n, m, map[110][110], ac[4][2] = {0, 1, 0, -1, -1, 0, 1, 0};
     6 int Dfs(int x, int y)
     7 {
     8     map[x][y] = 0;
     9     for(int i = 0; i < 4; i++)
    10     {
    11         int nx = x + ac[i][0];
    12         int ny = y + ac[i][1];
    13         if(nx >=0 && nx < n && ny >= 0 && ny < m && map[nx][ny] == 1)
    14             Dfs(nx, ny);
    15     }
    16 }
    17 int main()
    18 {
    19     int t;
    20     scanf("%d", &t);
    21     while(t--)
    22     {
    23         scanf("%d %d", &n, &m);
    24         for(int i = 0; i < n; i++)
    25             for(int j = 0; j < m; j++)
    26                 scanf("%d", &map[i][j]);
    27         int need = 0;
    28         for(int i = 0; i < n; i++)
    29         {
    30             for(int j = 0; j < m; j++)
    31             {
    32                 if(map[i][j] == 1)
    33                 {
    34                     Dfs(i, j);
    35                     need++;
    36                 }
    37             }
    38         }
    39         printf("%d
    ", need);
    40     }
    41     return 0;
    42 }
  • 相关阅读:
    (CS模式)大学计算机基础考试系统
    四叶草的祝福
    做人的小故事!
    前天晚上回到北京了
    人生活的三种状态
    松口气了!
    Mysql一些基础用法
    云计算随想
    对vector与deque插值与遍历的性能数据
    gdb命令的常用调试选项
  • 原文地址:https://www.cnblogs.com/soTired/p/4705762.html
Copyright © 2011-2022 走看看