#P9970. 串串

    ID: 8192 传统题 1000ms 1024MiB 尝试: 34 已通过: 1 难度: 10 上传者: 标签>字符串后缀自动机动态规划算法基础构造CF30002024“钉耙编程”中国大学生算法设计超级联赛(5)

串串

Problem Description

给定一个长度为 nn 的字符串 SS。现在有一个字符串 TT,初始时 T=ST=S(在接下来的操作中 SS 不变). 定义对 TT 的删除操作:每次操作删除 TT 开头或结尾恰好一个字符,同时花费『(操作前)TTSS 中的出现次数』的代价。 现在希望通过 nn 次操作将 TT 变为空串,求最小的总花费

Input

第一行一个整数 T(1T5×104) T (1 \leq T \leq 5 \times 10^4) 表示测试用例数量。 对每个测试用例,输入一个仅包含小写字母的字符串 S(1S106) S (1 \leq \sum |S| \leq 10^6) .

Output

对每个测试用例,输出一行一个整数,表示最小总花费。

Sample Input

5
abc
aaba
aaabb
legendy
ygfuygfu

Sample Output

3
4
6
7
9

Hint

例如对于 S=T=aaabbS=T=aaabb,一种可能的操作方式如下:$\underline{a}aabb \xrightarrow{1} \underline{a}abb \xrightarrow{1} \underline{a}bb\xrightarrow{1}\underline{b}b\xrightarrow{1}\underline{b}\xrightarrow{2}\epsilon$. (ϵ\epsilon 表示空串,\to 上的数字表示花费)