만드는 중입니다

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

유니콘

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

요약
N x M 격자에서 유니콘 기물이 주어진 단어를 순서대로 그리는 경로의 개수를 1,000,000,007로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

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

문제

유니콘은 체스의 나이트와 비슷한 말이다. 나이트는 한 방향으로 2칸, 그 방향과 수직인 방향으로 1칸 움직인다. 반면 유니콘은 네 기본 방향 중 하나로 2칸보다 많이 움직인 뒤, 방금 움직인 방향과 수직인 두 방향 중 하나로 1칸보다 많이 움직인다.

더 정확히 말하면, 유니콘의 한 번의 이동은 다음과 같다.

  1. 유니콘을 든다.
  2. 네 기본 방향 중 하나로 33칸 이상 움직인다.
  3. 방금 움직인 방향과 수직인 두 방향 중 하나로 22칸 이상 움직인다.
  4. 유니콘을 놓는다.

체스판의 크기는 N×MN \times M이다. 각 칸에는 알파벳 대문자의 처음 LL개 문자 중 하나가 쓰여 있다.

NN, MM, LL과 단어가 주어진다. 유니콘이 놓이는 칸들의 문자가 주어진 단어와 순서대로 일치하는 경로의 수를 구하라. 답은 1,000,000,0071{,}000{,}000{,}007로 나눈 나머지로 출력한다.

입력

첫째 줄에 NN, MM, LL이 주어진다. NN과 MM은 300300 이하의 자연수이고, LL은 2626 이하의 자연수이다.

둘째 줄에 단어가 주어진다. 단어의 길이는 최대 5050이며, 알파벳 대문자로만 이루어져 있다.

셋째 줄부터 NN개의 줄에 체스판에 적힌 문자열이 주어진다. 각 문자열의 길이는 MM이다.

출력

첫째 줄에 경로의 수를 1,000,000,0071{,}000{,}000{,}007로 나눈 나머지를 출력한다.

예제7

  1. 예제 1

    입력
    3 4 2
    AB
    ABBA
    AAAA
    BBBB
    
    예상 출력
    2
    
  2. 예제 2

    입력
    5 5 2
    CD
    ABBAA
    AAABB
    BBBBB
    ABABA
    ABBBB
    
    예상 출력
    0
    
  3. 예제 3

    입력
    4 4 1
    AA
    AAAA
    AAAA
    AAAA
    AAAA
    
    예상 출력
    20
    
  4. 예제 4

    입력
    4 4 1
    AAAAA
    AAAA
    AAAA
    AAAA
    AAAA
    
    예상 출력
    172
    
  5. 예제 5

    입력
    1 1 5
    ABCDE
    C
    
    예상 출력
    0
    
  6. 예제 6

    입력
    8 8 26
    TOPCODER
    AILFPSPF
    DZIOMYCE
    QOODZARU
    YVOTLTRX
    LSRIGANL
    LCIUUSNF
    IWVXKTDE
    OVPPNXRD
    
    예상 출력
    1
    
  7. 예제 7

    입력
    20 20 2
    AAAAA
    ABBAAAAABBBBBBBABABA
    ABBBBBABAAAABBAAABAA
    BAAABAABAABBABABBABB
    BBABBAAAABABAAAAABBA
    BBABAABABBAABABABBBA
    BABABAABABBBABBAABBA
    BAABBAAABBBABBABAAAA
    BAABBBBABAABAAAAABAA
    AABABAAAAABBBABABBBA
    BBAABAAABBAABAAAAABA
    BAAAAABABBAAABABABBA
    ABBAABBBABABBABAAABB
    AAAABAAAAAAAABBBAABB
    AAABABAAAAAABAAABABB
    AAABABABBABABAAABBBA
    AAABBBBAABBAABAAABBA
    BBBBAAABBABABAAAABAB
    BBAABBAABAAAABAABABA
    BBBAABBABABBBBBBBBBA
    AAABABBBBAABABBBBBBB
    
    예상 출력
    373977054