ブルーブリッジカップアナログクリア長い草のJava実装

問題説明
  土地の暁片は、彼が小さなn行m列、行ごとにこの空間を分割し、各列の長さは1です。
  暁明は、それらのいくつかの小さなクリアを選んだ、植え草や他の小片は、オープンスペースのまま。
  草は毎月、非常に速く成長し、草の小片が植えられた場合には草のいくつかは、出て成長する、それがアップ所有することになり、下、左、右の4つの小さなオープンスペースの拡張を、四つの小クリアそれは草の小片になります。
  k個の数ヶ月後にオープンスペース上の草があるどのような場所、暁明を教えてください。
入力フォーマット
  入力の最初の行のは、二つの整数N、Mを含有します。
  続いてN行は、m個の文字を含む各行は、オープンスペースは、文字の間にスペースが存在しない、初期状態を示しています。小数点場合は、手紙gの場合、草の種類を表し、オープンスペースとして表現されます。
  次は、整数kを含んでいます。
出力フォーマット
  出力N行、M個の文字を含む各行は、kは状態空間ヶ月を表します。文字gは、長い草を表す場合は小数点場合は、オープンスペースとして表現されます。
サンプル入力
4. 5
.G ...
...
... ... G
...
2
サンプル出力
GGGG。
GGGG。
GGGGG
.ggg。
例スケールを有するとレビュー契約
  、2 <= N、M <実施例中30%による評価のため = 20。
  実施例中70%による評価のため、2 <= N、M < = 100。
  評価のためのすべてのユースケース、2 <= N、M <= 1000,1 <= K <= 1000。

package 第十三次模拟;

import java.util.Scanner;

public class Demo9草地 {
	public static int[][] bool;
	public static int[] start;
	public static int[] end;
	public static char[][] num  ;
	public static int k = 0, n = 0, m = 0;
	public static int[] x = { 0, 1, 0, -1 };
	public static int[] y = { 1, 0, -1, 0 };

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();
		m = sc.nextInt();
		  num = new char[n][m];
		for (int i = 0; i < n; i++) {
			String s = sc.next();
			num[i] = s.toCharArray();
		}
		k = sc.nextInt();
		sc.close();
		start = new int[m * n];
		end = new int[m * n];
		int temp = 0;
		bool = new int[n][m];
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				if (num[i][j] == 'g') {
					start[temp] = i;
					end[temp++] = j;
				}
				else{
					bool[i][j]=-1;
				}
			}
		}
		for (int i = 0; i < temp; i++) {
			dfs(start[i],end[i],k);
		}
		for (int i = 0; i < n; i++) {
			for (int j = 0; j <m; j++) {
				System.out.print(num[i][j]);
			}
			System.out.println();
		}
	}

	public static void dfs(int xx, int yy, int kk) {
		
		bool[xx][yy]=kk;
		num[xx][yy]='g';
		for (int i = 0; i < 4; i++) {
			int newx = x[i] + xx;
			int newy = y[i] + yy;
			if ( newx >= 0 && newy >= 0 && newx < n && newy < m&&  kk - 1 > bool[newx][newy]) {
				dfs(newx, newy, kk - 1);
			}
		}
	}

}

リリース1472元の記事 ウォンの賞賛10000 + ビュー176万+

おすすめ

転載: blog.csdn.net/a1439775520/article/details/104750331