만드는 중입니다

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

표 위의 편집 거리

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

요약
격자의 글자를 따라 이동하며 만들 수 있는 문자열 중 T와의 편집 거리가 가장 작은 값을 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 그래프, 문자열 매칭
정답자
아직 제출이 없습니다

문제

표에는 HH개의 행과 WW개의 열이 있다. 각 칸에는 알파벳 소문자가 하나씩 적혀 있다.

다음 과정으로 문자열을 만든다.

  1. 칸 하나를 고르고, 그 칸의 글자 하나로 이루어진 길이 1의 문자열 SS를 만든다.
  2. 다음 중 하나를 고른다.
    • SS 만들기를 멈춘다.
    • 현재 칸과 변을 공유하는 네 칸 중 하나를 고른다. 그 칸의 글자를 SS의 뒤에 붙이고 그 칸으로 이동한다. 그 뒤에는 2번을 반복한다.

문자열 TT가 주어진다. 목표는 SS와 TT의 편집 거리를 최소화하는 것이다.

두 문자열 UU와 VV의 편집 거리는 UU를 VV로 바꾸는 데 필요한 연산 횟수의 최솟값이다. 사용할 수 있는 연산은 다음 세 가지다.

  • 문자 하나를 다른 문자로 바꾼다.
  • 문자 하나를 삽입한다.
  • 문자 하나를 삭제한다.

입력

첫 줄에 HH와 WW가 주어진다. 이어지는 HH개의 줄은 표의 각 행을 나타낸다. 마지막 줄에 문자열 TT가 주어진다. TT는 비어 있지 않으며 길이는 2000 이하이다. 표의 글자와 TT는 모두 알파벳 소문자로 이루어진다.

출력

SS와 TT의 편집 거리의 최솟값을 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    2 2
    ab
    ar
    abracadabra
    
    예상 출력
    2