BJ 3109パン屋さん
15813 ワード
https://www.acmicpc.net/problem/3109
すべての状況を複雑に調査しようとすると、かえって実現しにくく、実行時間も長い.
左から右へのパイプラインを尋ねる最大数です.
最も異なるパイプラインに影響を及ぼさないように左上から上に伸ばし、接続できない場合は、パイプラインを再インストールしていない状態に戻せばよい.
すべての状況を複雑に調査しようとすると、かえって実現しにくく、実行時間も長い.
左から右へのパイプラインを尋ねる最大数です.
最も異なるパイプラインに影響を及ぼさないように左上から上に伸ばし、接続できない場合は、パイプラインを再インストールしていない状態に戻せばよい.
package day0217;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Bread {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
static StringTokenizer st;
static int count = 0, N, M, max = 0;
static int[] dir = { -1, 0, 1 };
static char[][] map;
static boolean recur(int x, int y) {
if (y == M - 1) {
return true;
}
for (int i = 0; i < 3; i++) {
if (x + dir[i] >= 0 && x + dir[i] < N && map[x + dir[i]][y + 1] != 'x') {
map[x + dir[i]][y + 1] = 'x';
if(recur(x + dir[i], y + 1)) {
return true;
}
}
}
return false;
}
static void print() {
for(int i = 0; i < N; i++) {
for(int j = 0; j < M; j++) {
System.out.print(map[i][j]);
}
System.out.println();
}
System.out.println();
}
public static void main(String[] args) throws IOException {
st = new StringTokenizer(br.readLine(), " ");
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
map = new char[N][M];
for (int i = 0; i < N; i++) {
map[i] = br.readLine().toCharArray();
}
for (int i = 0; i < N; i++) {
if(recur(i, 0)) count++;
}
System.out.println(count);
}
}
Reference
この問題について(BJ 3109パン屋さん), 我々は、より多くの情報をここで見つけました https://velog.io/@mraz0210/BJ3109-빵집テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol