만드는 중입니다

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

문자열 이상한 합

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

요약
소문자 문자열 s가 주어질 때, 2 ≤ ℓ ≤ r ≤ |s|인 모든 구간 [ℓ, r]마다 s[ℓ, r]의 접두사들로 나눌 수 있는 s[1, ℓ-1]의 가장 긴 접미사 길이를 구해 모두 더합니다.
난이도

어려움10점 중 8점

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

문제

소문자 영어 알파벳으로 이루어진 문자열 ss가 주어진다.

2≤ℓ≤r≤∣s∣2 \leq \ell \leq r \leq |s|를 만족하는 구간 [ℓ,r][\ell, r]을 생각하자. f(ℓ,r)f(\ell, r)은 s[1,ℓ−1]s[1, \ell-1]의 접미사 중에서, s[ℓ,r]s[\ell, r]의 접두사들로 나눌 수 있는 가장 긴 접미사의 길이이다. 그런 접미사가 없으면 f(ℓ,r)=0f(\ell, r) = 0이다.

다음 값을 구하라.

∑ℓ=2∣s∣∑r=ℓ∣s∣f(ℓ,r)\sum_{\ell=2}^{|s|} \sum_{r=\ell}^{|s|} f(\ell, r)

입력

첫 번째 줄에 테스트 케이스의 개수 tt (1≤t≤1051 \leq t \leq 10^5)가 주어진다. 이어지는 tt개의 줄에는 각각 소문자 영어 알파벳으로 이루어진 문자열 ss (2≤∣s∣≤2⋅1052 \leq |s| \leq 2 \cdot 10^5)가 주어진다. 모든 테스트 케이스의 ∣s∣|s| 합은 2⋅1052 \cdot 10^5을 넘지 않는다.

출력

각 테스트 케이스마다 답을 정수 하나로 출력한다.

힌트

세 번째 테스트 케이스를 보자. 이 경우 f(2,2)=0f(2, 2) = 0, f(2,3)=0f(2, 3) = 0, f(2,4)=0f(2, 4) = 0, f(2,5)=0f(2, 5) = 0, f(3,3)=0f(3, 3) = 0, f(3,4)=2f(3, 4) = 2, f(3,5)=2f(3, 5) = 2, f(4,4)=0f(4, 4) = 0, f(4,5)=2f(4, 5) = 2, f(5,5)=0f(5, 5) = 0이므로 답은 66이다.

예제1

  1. 예제 1

    입력
    8
    aa
    ab
    ababa
    abaaba
    abacaba
    abaaababaab
    aababcabcbc
    abcdabcabaabcd
    
    예상 출력
    1
    0
    6
    7
    0
    74
    51
    20