BOJ 6175 Cow Travelling

BOJ 6175 Cow Travelling

문제 링크:

문제 내용

NNMM열의 사각 격자의 각 칸에는 풀이 자라 있거나 나무가 자라 있습니다.

베시가 시간 0에 (R1,C1)(R_1, C_1)에 있었다가 시간 TT(R2,C2)(R_2, C_2)에 있었다고 할 때, 베시가 거쳐갔을 수 있는 서로 다른 경로의 수를 구하세요. (R,C)(R, C)는 위쪽에서부터 RR번째 행, 왼쪽에서부터 CC번째 열에 있는 칸을 의미합니다.

베시는 매 시간마다 상하좌우로 이웃한 칸 중 하나로 이동할 수 있습니다. 나무가 있는 칸으로는 이동할 수 없습니다. 이동 중에 같은 칸을 여러 번 방문했을 수도 있습니다.

입력

첫 번째 줄에 NN, MM, TT가 주어집니다. (2N1002 \le N \le 100, 2M1002 \le M \le 100, 1T151 \le T \le 15)

다음 NN줄에 걸쳐서 사각 격자의 상태가 주어집니다. .인 칸은 풀이 있는 칸, *인 칸은 나무가 있는 칸입니다.

그 다음 줄에는 R1R_1, C1C_1, R2R_2, C2C_2가 주어집니다. (1R1,R2N1 \le R_1, R_2 \le N, 1C1,C2M1 \le C_1, C_2 \le M)

출력

문제의 답을 출력합니다.

문제 풀이

스포일러

15번 동안 이동할 수 있는 모든 방법의 수는 4151094^{15} \approx 10^9이므로, 적당한 정수 타입을 사용하여 문제를 풀 수 있습니다.

DP를 다음과 같이 정의하여 O(NMT)\mathcal{O}(NMT)에 풀 수 있습니다. 나무가 있는 칸의 처리에 주의합니다.

  • DP[r][c][t]: 시간 tt(r,c)(r, c)에 있는 경우의 수
Last updated on