만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

집으로 걷기

면접 대비

시간 제한2초메모리 제한1024 MB

요약
헤이베일을 피해 왼쪽 위에서 오른쪽 아래로 이동하되 방향을 최대 K번만 바꾸는 단조 경로의 개수를 센다. K는 3 이하다.
난이도

보통10점 중 6점

유형
동적 계획법, 행렬, 구현, 조합론
정답자
아직 제출이 없습니다

문제

젖소 Bessie는 가장 좋아하는 목초지에서 헛간으로 걸어 돌아가려고 한다.

목초지와 농장은 N×NN \times N 격자에 있고(2≤N≤502 \leq N \leq 50), 목초지는 왼쪽 위 모서리에, 헛간은 오른쪽 아래 모서리에 있다. Bessie는 최대한 빨리 집에 가고 싶어서 아래쪽과 오른쪽으로만 걷는다. 일부 위치에는 건초더미가 있어 지나갈 수 없고, Bessie는 그 주위로 돌아가야 한다.

Bessie는 오늘 조금 피곤해서 걷는 방향을 최대 KK번 바꾸려고 한다(1≤K≤31 \leq K \leq 3).

Bessie가 가장 좋아하는 목초지에서 헛간까지 걸을 수 있는 서로 다른 경로는 몇 개인가? 한 경로에서 어떤 칸을 지나가고 다른 경로에서는 지나가지 않으면 두 경로는 서로 다르다.

입력

각 테스트 케이스의 입력은 TT개의 부분 테스트 케이스를 포함하며, 각각 서로 다른 농장을 나타내고, 전체 테스트 케이스를 통과하려면 모든 부분 테스트 케이스를 올바르게 답해야 한다. 입력의 첫째 줄에 TT가 주어진다(1≤T≤501 \leq T \leq 50). 이어서 TT개의 부분 테스트 케이스가 주어진다.

각 부분 테스트 케이스의 첫째 줄에는 NN과 KK가 주어진다.

다음 NN개의 줄에는 각각 NN개의 문자로 이루어진 문자열이 주어진다. 각 문자는 빈 칸이면 ., 건초더미가 있으면 H이다. 농장의 왼쪽 위 모서리와 오른쪽 아래 모서리에는 건초더미가 없다.

출력

TT개의 줄을 출력하고, ii번째 줄에는 ii번째 부분 테스트 케이스에서 Bessie가 지날 수 있는 서로 다른 경로의 수를 출력한다.

예제1

  1. 예제 1

    입력
    7
    3 1
    ...
    ...
    ...
    3 2
    ...
    ...
    ...
    3 3
    ...
    ...
    ...
    3 3
    ...
    .H.
    ...
    3 2
    .HH
    HHH
    HH.
    3 3
    .H.
    H..
    ...
    4 3
    ...H
    .H..
    ....
    H...
    
    예상 출력
    2
    4
    6
    2
    0
    0
    6