#P14021. [ICPC 2024 Nanjing R] 博德之跃 2

[ICPC 2024 Nanjing R] 博德之跃 2

题目描述

您有一个由小写英文字母组成的字符串 SS。您需要对 SS 执行若干次操作,直到它变为空字符串。每次您可以执行以下三种操作中的一种:

  • 删除 SS 的第一个字符。
  • 删除 SS 的最后一个字符。
  • 选择 SS 的一个好子串 SS',并将 SS 替换为 SS'

一个非空字符串 SS' 被称为 SS 的好子串,当且仅当 SSS'\neq SSS'SS 的前缀,且 SS' 的反串是 SS 的后缀。长度为 kk 的字符串 p1p2pkp_1p_2\cdots p_k 的反串是另一个长度为 kk 的字符串 pkpk1p1p_kp_{k-1}\cdots p_1

求最多能执行多少次第 33 种操作。

输入格式

有多组测试数据。第一行输入一个整数 TT 表示测试数据组数。对于每组测试数据:

第一行输入一个由小写字母组成的字符串 SS1S1051\le |S|\le 10^5)。

保证所有测试数据 S|S| 之和不超过 2×1052\times 10^5

输出格式

每组测试数据输出一行一个整数,表示最多能执行多少次第 33 种操作。

3
aaaa
abbaabba
xy
3
4
0

提示

对于第一组样例数据:$\texttt{aaaa} \xrightarrow{\text{op. 3}} \texttt{aaa} \xrightarrow{\text{op. 3}} \texttt{aa} \xrightarrow{\text{op. 3}} \texttt{a} \xrightarrow{\text{op. 2}} \varnothing$。

对于第二组样例数据:$\texttt{abbaabba} \xrightarrow{\text{op. 3}} \texttt{abbaabb} \xrightarrow{\text{op. 1}} \texttt{bbaabb} \xrightarrow{\text{op. 3}} \texttt{bbaab} \xrightarrow{\text{op. 1}} \texttt{baab} \xrightarrow{\text{op. 3}} \texttt{baa} \xrightarrow{\text{op. 1}} \texttt{aa} \xrightarrow{\text{op. 3}} \texttt{a} \xrightarrow{\text{op. 1}} \varnothing$。