zoukankan      html  css  js  c++  java
  • NYOJ题目27水池数目

    ---------------------------------------------

    这道题有点坑,也怪我总是有点马虎,按照正常人的思维0是表示有水池啊竟然是1表示有水池,最坑的是写反了竟然还能过样例一直以为是自己程序问题review了好多遍....尴尬

    图论基础题,染色法即可。

    AC代码:

    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
            
            Scanner sc=new Scanner(System.in);
            
            int times=sc.nextInt();
            while(times-->0){
                int n=sc.nextInt();
                int m=sc.nextInt();
                map=new int[n][m];
                
                for(int i=0;i<n;i++){
                    for(int j=0;j<m;j++){
                        map[i][j]=sc.nextInt();
                    }
                }
                
                int color=0;
                for(int i=0;i<n;i++){
                    for(int j=0;j<m;j++){
                        if(map[i][j]==1) dfs(i,j,--color);
                    }
                }
                System.out.println(-color);
            }
        }
        
        public static int map[][];
        public static int next[][]={{-1,0},{0,1},{1,0},{0,-1}};
        
        public static void dfs(int x,int y,int color){
            if(x<0 || x>=map.length || y<0 || y>=map[x].length) return ;
            if(map[x][y]==1){
                map[x][y]=color;
                for(int i=0;i<next.length;i++){
                    int nx=x+next[i][0];
                    int ny=y+next[i][1];
                    dfs(nx,ny,color);
                }
            }
        }
        
    }

    题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=27

  • 相关阅读:
    centos6.8防火墙模块未加载
    CentOS6.8下安装Redis
    CentOS6.8下安装mysql
    git使用手册
    oracle锁表与解表
    原生js(二)
    原生js(一)
    学习计划调整
    jQuery Sizzle选择器(三)
    jQuery Sizzle选择器(二)
  • 原文地址:https://www.cnblogs.com/cc11001100/p/6002691.html
Copyright © 2011-2022 走看看