#P14161. [ICPC 2022 Nanjing R] 完美回文

[ICPC 2022 Nanjing R] 完美回文

题目描述

给定长度为 nn 的字符串 S=s0s1sn1S = s_0s_1\cdots s_{n-1},令 f(S,d)f(S, d) 表示将 SS 左移 dd 次后获得的字符串。也就是说 $f(S, d) = s_{(d+0)\bmod n}s_{(d+1)\bmod n}\cdots s_{(d+n-1)\bmod n}$。称 SS 为完美回文,若对于所有\textbf{所有}非负整数 ddf(S,d)f(S, d) 都是回文串。

给定长度为 nn 的仅由小写英文字母组成的字符串 A=a0a1an1A = a_0a_1\cdots a_{n-1},您可以对 AA 进行任意次以下操作(包括零次):选择整数 ii 满足 0i<n0 \le i < n 并将 aia_i 改为任何小写英文字母。

求将 AA 变为完美回文的最少操作次数。

称长度为 nn 的字符串 P=p0p1pn1P = p_0p_1\cdots p_{n-1} 是回文串,若对于所有 0i<n0 \le i < npi=pn1ip_i = p_{n-1-i}

输入格式

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

第一行输入一个仅由小写英文字母构成的字符串 a0a1an1a_0a_1\cdots a_{n-1}1n1051 \le n \le 10^5)。

保证所有数据中字符串长度之和不超过 10610^6

输出格式

每组数据输出一行一个整数表示将 AA 变为完美回文的最少操作次数。

2
abcb
xxx
2
0

提示

对于第一组样例数据,可以将第一和第三个字符变为 b,这样字符串将变为 bbbb。容易发现对于所有非负整数 ddf(“bbbb”,d)=“bbbb”f(\text{``bbbb''}, d) = \text{``bbbb''}bbbb 是回文串,因此 bbbb 是完美回文。这些变化需要消耗 22 次操作,可以证明这是最少需要的操作次数。

对于第二组样例数据,xxx 已经是完美回文,因此无需任何操作。