만드는 중입니다

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

LCS 9

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

요약
두 문자열 A와 B가 주어질 때, A의 모든 접두사와 B의 모든 부분 문자열을 짝지어 각 쌍의 LCS 길이를 모두 더한 값을 구합니다.
난이도

어려움10점 중 8점

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

문제

최장 공통 부분 수열(LCS) 문제는 주어진 두 수열의 공통 부분 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK이다. 문자열의 접두사는 문자열의 뒤에서 0개 이상의 문자를 제거해서 만들 수 있는 비어 있지 않은 문자열이다. 길이가 NN인 문자열은 NN개의 접두사를 가진다. 문자열의 부분문자열은 문자열의 앞과 뒤에서 0개 이상의 문자를 제거해서 만들 수 있는 비어 있지 않은 문자열이다. 길이가 NN인 문자열은 N(N+1)/2N(N+1)/2개의 부분문자열을 가진다. 두 문자열이 주어지면, 첫 번째 문자열의 접두사와 두 번째 문자열의 부분문자열로 이루어진 모든 쌍에 대해 LCS의 길이를 구하고, 그 길이들의 합을 출력한다.

입력

첫째 줄과 둘째 줄에 각각 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 7000글자이다.

출력

첫째 줄에 문제의 정답을 출력한다.

예제2

  1. 예제 1

    입력
    ACAYKP
    CAPCAK
    
    예상 출력
    197
    
  2. 예제 2

    입력
    WEDONTNEEDNOEDUCATION
    WEDONTNEEDNOTHOUGHTCONTROL
    
    예상 출력
    29813