만드는 중입니다

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

커버스

시간 제한1초메모리 제한2048 MB

요약
빈 문자열에서 시작해 문자열 T를 만드는 최소 비용을 구합니다. P를 붙이는 연산은 0, 문자 하나를 붙이는 연산은 1, 뒤쪽 문자를 지우고 P를 붙이는 연산은 지운 문자 수만큼 듭니다.
난이도

보통10점 중 7점

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

문제

두 문자열 TT와 PP가 주어진다. 목표는 PP로 TT를 만드는 것이다. 빈 문자열에서 시작하며, 아래 세 가지 연산 중 하나를 수행할 수 있다.

  • 현재 문자열의 끝에 PP를 붙인다. 비용은 00이다.
  • 현재 문자열의 끝에 문자 하나를 붙인다. 비용은 11이다.
  • 현재 문자열의 끝에서 문자를 삭제한 뒤 PP를 붙인다. 비용은 삭제한 문자의 개수이다.

예를 들어 T=T = aabaabaa, P=P = aaba이다. 다음과 같이 PP로 TT를 만드는 방법이 두 가지 있다. 여기서 ε는 빈 문자열을 뜻한다.

  • ε → aaba → aabaa → aabaab → aabaaba → aabaabaa
  • ε → aaba → aab → aabaaba → aabaabaa

첫 번째 방법은 PP를 먼저 붙이고(비용 00), 문자 a, b, a, a 네 개를 붙인다(비용 44). 총비용은 4이다. 두 번째 방법은 PP를 먼저 붙이고(비용 00), 문자 a 하나를 삭제한 뒤(비용 11) PP를 다시 붙이고(비용 00), 마지막으로 문자 a를 붙인다(비용 11). 총비용은 2이다. 두 번째 방법이 최소 비용이다.

TT와 PP가 주어졌을 때, PP로 TT를 만드는 최소 비용을 구하는 프로그램을 작성하시오.

입력

첫 줄에 두 정수 mm과 nn이 주어진다(1≤m≤100 0001 \le m \le 100\,000, 1≤n≤200 0001 \le n \le 200\,000). mm은 PP의 길이이고, nn은 TT의 길이이다. 둘째 줄에는 PP가, 셋째 줄에는 TT가 주어진다. PP와 TT는 모두 영어 소문자로만 이루어져 있다.

출력

한 줄에 PP로 TT를 만드는 최소 비용을 출력한다.

예제3

  1. 예제 1

    입력
    4 8
    aaba
    aabaabaa
    
    예상 출력
    2
    
  2. 예제 2

    입력
    4 8
    aaba
    ccdccdcc
    
    예상 출력
    8
    
  3. 예제 3

    입력
    4 8
    abab
    abababab
    
    예상 출력
    0