• POJ 2386 java实现


    描述:

    Due to recent rains, water has pooled in various places in Farmer John's field, which is represented by a rectangle of N x M (1 <= N <= 100; 1 <= M <= 100) squares. Each square contains either water ('W') or dry land ('.'). Farmer John would like to figure out how many ponds have formed in his field. A pond is a connected set of squares with water in them, where a square is considered adjacent to all eight of its neighbors. 
    Given a diagram of Farmer John's field, determine how many ponds he has.

    Input

    * Line 1: Two space-separated integers: N and M 
    * Lines 2..N+1: M characters per line representing one row of Farmer John's field. Each character is either 'W' or '.'. The characters do not have spaces between them.

    Output

    * Line 1: The number of ponds in Farmer John's field.

    Sample Input

    10 12
    W........WW.
    .WWW.....WWW
    ....WW...WW.
    .........WW.
    .........W..
    ..W......W..
    .W.W.....WW.
    W.W.W.....W.
    .W.W......W.
    ..W.......W.
     1 import java.util.Scanner;
     2 public class Main {
     3 
     4 
     5     private static char filed[][]=new char[100][100];
     6     public static void search(int x,int y,int n,int m){
     7         filed[x][y]='.';
     8         for(int i=-1;i<2;i++)
     9             for(int j=-1;j<2;j++){
    10                 int px=x+i,py=y+j;
    11                 if(px>=0&&py>=0&&px<n&&py<m){
    12                     if(filed[px][py]=='W'){
    13                         filed[px][py]='.';
    14                         Main.search(px, py, n, m);
    15                     }
    16                 }
    17             }
    18     }
    19     public static void main(String[] args) {
    20         // write your code here
    21         int n=0,m=0;
    22         int num=0;   //池塘总数
    23         String s;
    24         Scanner sc = new Scanner(System.in);
    25         n=sc.nextInt();
    26         m=sc.nextInt();
    27         for(int i=0;i<n;i++){            //输入W和.
    28             s=sc.next();
    29             for(int j=0;j<m;j++){
    30                 filed[i][j]=s.charAt(j);  //把W和.存入数组
    31             }
    32         }
    33         sc.close();
    34         for(int i=0;i<n;i++)
    35             for(int j=0;j<m;j++){
    36                 if(filed[i][j]=='W'){
    37                     Main.search(i,j,n,m);
    38                     num++;
    39                 }
    40             }
    41         System.out.println(num);
    42 
    43 
    44     }
    45 }
  • 相关阅读:
    POJ-1004-Finanical Management
    POJ-1003-hangover
    第一次写博客,想了很久要给自己留一个什么样的开始
    从exchange2010上面删除特定主题或特定时间的邮件
    STM32 一个定时器产生4路 独立调频率,占中比可调,脉冲个数可以统计。
    光电耦合
    STM32 定时器级联
    Eclipse 创建新的workspace
    一次提交,多文件上传
    Grid标签计算结果集中的合计行
  • 原文地址:https://www.cnblogs.com/duanqiong/p/4403453.html
Copyright © 2020-2023  润新知