아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

철학적 균형

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

요약
문자열이 주어질 때 접미사들에 확률분포를 정해, 상대가 어떤 접미사를 골라도 LCP 기댓값의 최솟값이 최대가 되도록 한다.
난이도

어려움10점 중 9점

유형
문자열, 게임 이론, 그리디, 정렬
정답자
아직 제출이 없습니다

문제

어떤 힘이 리카를 부추겨 LCR을 세우게 했다. LCR이 리카를 EC Final 개최교 부속 중학교로 데려간 것은 우연일까?

리카는 NWPU에 들어가려 하지만, 악마에게 들린 경비원이 그녀를 들여보내 주지 않는다. 그래서 그녀는 출입증을 위조할 생각을 한다.

핵심은 출입증 ID, 즉 접근 핸드셰이킹을 위한 특별한 문자열이다. 경비원은 비밀 키로 길이 nn의 문자열 ss를 가지고 있고, 출입증을 검사할 때 그 문자열의 접미사(마지막 문자를 포함하는 부분 문자열) 하나를 골라 출입증 ID와 그 접미사의 최장 공통 접두사의 길이 ll을 계산한다. ll은 그녀를 통과시켜 줄 확률에 비례한다.

이제 리카는 어떤 비밀스러운 방법으로 비밀 키를 손에 넣었다. 그녀도 출입증 ID로 접미사 하나를 고르려고 한다. 경비원이 어떤 접미사를 고를지 알 수 없으므로, 리카는 출입증 ID를 무작위로 고르기로 한다. 즉, 리카는 접미사에 대한 확률분포(실수열 {pi},i=1,2,…,n\{p_i\}, i = 1, 2, \dots, n로, pi≥0p_i \ge 0, ∑i=1npi=1\sum_{i=1}^n p_i = 1이며, 길이 ii인 접미사 sis_i를 확률 pip_i로 고른다는 뜻)를 설계하고, 경비원이 어떤 접미사를 고르더라도 ll의 수학적 기댓값이 최소가 되는 경우를 최대화하려 한다.

ll의 수학적 기댓값의 최솟값이 가질 수 있는 최댓값을 계산할 수 있는가? 정확히 말해, 계산해야 하는 값은 max⁡{pi}(min⁡j=1n(∑k=1npklcp(sk,sj)))\max_{\{p_i\}} \left(\min_{j=1}^n\left(\sum_{k=1}^n p_k \mathrm{lcp}(s_k,s_j)\right)\right)이며, 여기서 lcp(sk,sj)\mathrm{lcp}(s_k,s_j)는 sks_k와 sjs_j의 최장 공통 접두사의 길이를 뜻한다.

입력

첫 줄에는 테스트 케이스의 수 T(1≤T≤105)T (1 \leq T \leq 10^5)가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다.

각 테스트 케이스에는 소문자로만 이루어진 길이 n(1≤n≤2×105)n (1 \leq n \leq 2 \times 10^5)의 문자열 ss, 즉 비밀 키가 주어진다.

모든 테스트 케이스에서 nn의 합은 5×1055 \times 10^5 이하이다.

출력

출력은 TT줄이고, 각 줄에는 해당 테스트 케이스의 답을 소수로 출력한다.

절대 오차 또는 상대 오차가 10−910^{-9}를 넘지 않으면 정답으로 인정된다.

예제1

  1. 예제 1

    입력
    3
    aba
    aaaaaaaaaaa
    abcd
    
    예상 출력
    0.66666666667
    1
    0.48