标签:
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 28220 | Accepted: 14160 |
Description
Input
Output
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.
Sample Output
3
Hint
Java AC 代码
import java.util.Scanner; public class Main { static String field[][]; static int rows; static int columns; static int ponds; static boolean marked[][]; static int dx[] = {-1, 0, 1, -1, 1, -1, 0, 1}; static int dy[] = {1, 1, 1, 0, 0, -1, -1, -1}; public static void main(String[] args) { Scanner sc = new Scanner(System.in); rows = sc.nextInt(); columns = sc.nextInt(); field = new String[rows][columns]; marked = new boolean[rows][columns]; for(int i = 0; i < rows; i++) { String line = sc.next(); for(int j = 0; j < columns; j++) { field[i][j] = line.substring(j, j + 1); } } for(int i = 0; i < rows; i++) for(int j = 0; j < columns; j++) { if(!marked[i][j] && field[i][j].equals("W")) { dfs(i, j); ponds++; } } System.out.println(ponds); } public static void dfs(int row, int col) { for(int i = 0; i < 8; i++) { int _row = row + dy[i]; int _col = col + dx[i]; if(_row < rows && _row >= 0 && _col < columns && _col >= 0 && !marked[_row][_col] && field[_row][_col].equals("W")) { marked[_row][_col] = true; dfs(_row, _col); } } } }
标签:
原文地址:http://www.cnblogs.com/kkkkkk/p/5539882.html