码迷,mamicode.com
首页 > 编程语言 > 详细

POJ 2386 java实现

时间:2015-04-08 21:11:23      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

描述:

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 2386 java实现

标签:

原文地址:http://www.cnblogs.com/duanqiong/p/4403453.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!