zoukankan      html  css  js  c++  java
  • NYOJ27 水池数目

    水池数目

    时间限制: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


    import java.util.Scanner;
    
    public class n027_水池数目 {
    
    	//地图
    	static int[][] map;
    
    	public static void main(String[] args) {
    		Scanner scan = new Scanner(System.in);
    		int N = scan.nextInt();
    		while (N-- > 0) {
    			//行
    			int m = scan.nextInt();
    			//列
    			int n = scan.nextInt();
    			map = new int[m][n];
    			for (int i = 0; i < m; i++) {
    				for (int j = 0; j < n; j++) {
    					map[i][j] = scan.nextInt();
    				}
    			}
    			//水池数目
    			int count = 0;
    			for (int i = 0; i < m; i++) {
    				for (int j = 0; j < n; j++) {
    					if(map[i][j]==0)
    						continue;
    					count++;
    					f(i,j);
    					
    				}
    			}
    			System.out.println(count);
    		}
    	}
    
    	public static void f(int i, int j) {
    		if (map[i][j] == 0)
    			return;
    		map[i][j] = 0;
    		//四个方向递归
    		if (i > 0)
    			f(i - 1, j);
    		if (i < map.length-1)
    			f(i + 1, j);
    		if (j > 0)
    			f(i, j - 1);
    		if (j < map[i].length-1)
    			f(i, j + 1);
    	}
    
    }
    

    原题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=27


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    从三道题目入门frida
    APP 抓包(应用层)
    安卓开发--探究碎片Fragment
    centos7-查询内存/硬盘等详细信息
    网页视频下载神器
    error: C++ preprocessor "/lib/cpp" fails sanity check错误解决方法
    make源文件时出现 /usr/bin/ld: cannot find -lstdc++ 错误
    安装docker后修改docker文件目录
    centos集群中各节点如何实现时间同步?
    redhat7.5 yum不能用
  • 原文地址:https://www.cnblogs.com/Jayme/p/4902359.html
Copyright © 2011-2022 走看看