結果

問題 No.852 連続部分文字列
ユーザー OKCH3COOH
提出日時 2019-10-30 10:15:06
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
TLE  
実行時間 -
コード長 455 bytes
コンパイル時間 103 ms
コンパイル使用メモリ 12,416 KB
実行使用メモリ 27,340 KB
最終ジャッジ日時 2024-09-14 21:45:32
合計ジャッジ時間 27,908 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 30 TLE * 1 -- * 10
権限があれば一括ダウンロードができます

ソースコード

diff #

S = input()
N = len(S)

# 左からi文字目移行の文字数 [i, N]
maxSize = [0] * (N + 1)
V = set()
for i, s in enumerate(S[:: -1], start=2):
    V.add(s)
    maxSize[-i] = len(V)

ans = 0
for left, s in enumerate(S):
    V = set()
    for right, t in enumerate(S[left:], start=left):
        V.add(t)
        if len(V) == maxSize[left]:
            ans += len(V) * (N - right)
            break
        ans += len(V)

print(ans / (N * (N + 1) // 2))
0