zoukankan      html  css  js  c++  java
  • (Java实现) 细胞

    细胞
    Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
    Total Submission(s) : 8 Accepted Submission(s) : 4
    Font: Times New Roman | Verdana | Georgia
    Font Size: ← →
    Problem Description
    一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。
    Input
    输入第一行为T,表示有T组测试数据,对于每组测试数据第一行为m和n(1<m,n<100),表示矩阵的行和列。下面m行是矩阵。
    Output
    对于每组测试数据,输出矩阵中的细胞个数。
    Sample Input
    1
    4 10
    0234500067
    1034560500
    2045600671
    0000000089
    Sample Output
    4
    Author

    //思路;题目意思是一片区域内没有一个数字0 那就是一个细胞 所以不需要对标记数组清零 回溯

    import java.util.Scanner;
    
    
    public class xibao {
    	public static int a,b;
    	public static boolean [] [] bool;
    	public static char [][] num;
    	public static void main(String[] args) {
    		Scanner sc =new Scanner(System.in);
    		 a = sc.nextInt();
    		 b = sc.nextInt();
    		int sum = 0;
    		num = new char [a][b];
    		bool = new boolean [a][b];
    		for (int i = 0; i < a; i++) {
    			String s = sc.next();
    			for (int j = 0; j < b; j++) {
    				num[i][j]=s.charAt(j);
    			}
    		}
    		for (int i = 0; i < a; i++) {
    			for (int j = 0; j < b; j++) {
    				if(num[i][j]!='0' && !bool[i][j]){
    					sum++;
    					dfs(i,j);
    				}
    			}
    		}
    		System.out.println(sum);
    	}
    	public static void dfs(int x,int y){
    		 if(x>=a || x<0 || y>=b || y<0 || num[x][y]=='0' || bool[x][y]) return;
    		    bool[x][y]=true;
    		    dfs(x+1,y);
    		    dfs(x,y+1);
    		    dfs(x-1,y);
    		    dfs(x,y-1);//清除细胞的爆搜部分
    	}
    
    }
    
    
  • 相关阅读:
    多尺度双边滤波及基于小波变换的非线性扩散
    yum安装CentOS7+nginx+php7.3+mysql5.7
    python学习之特殊魔法__getattr__,__getattribute__
    python学习之特殊魔法__get__,__set__,__delete__
    python学习之装饰器
    python学习之私有属性
    python学习之包装与授权
    python学习之生成器(generator)
    python学习之运用特殊方法,定制类
    python学习之创建迭代器对象
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12948861.html
Copyright © 2011-2022 走看看