#904. 好串串(string)

好串串(string)

题目描述

快要小学毕业的小可可决定给好朋友小果果送毕业礼物。

现在小可可有一个长度为 nn 的小写字符串 SS。 规定“好串串”是指前一半字典序单调不降、后一半字典序单调不升的回文串。

形式化地,长度为 mm 的“好串串” SS 满足:

  • $S_1 \le S_2 \le \dots \le S_{\lceil \frac{m}{2} \rceil}$, $S_{\lceil \frac{m}{2} \rceil} \ge S_{\lceil \frac{m}{2} \rceil + 1} \ge \dots \ge S_m$;
  • 对于所有 i=1,2,,mi = 1, 2, \dots, m,满足 Si=Smi+1S_i = S_{m-i+1}

字典序是指小写字母表中的顺序(a 最小 z 最大);m2\lceil \frac{m}{2} \rceil 是指 m2\frac{m}{2} 上取整。 如 zbbbaccgccaccdeeedccghg 等是“好串串”;acbcasyzzhccb 等不是“好串串”。

现在小可可要把 SS 分割成若干个不相交的“好串串”送给小果果。因为小果果不想让书包里堆满“好串串”,所以小可可要让分割出的“好串串”个数尽量少。

可是小可可不会分割,请你来告诉她最少能分割成多少个“好串串”吧!

输入格式

本题多组测试。

第一行两个正整数 C,tC, t,表示测试点编号和数据组数,对于样例 11 满足 C=0C=0

接下来 tt 行,每行一个小写字符串 SS,表示小可可的字符串。

输出格式

输出包含 tt 行,每行一个正整数,表示这组数据的答案。

样例输入 1

0 5
czccc
ababa
edffd
bbdddbb
aaababa

样例输出 1

2
3
2
1
3

说明

样例解释

  • 对于第一组测试数据,可以分割为 czccc
  • 对于第二组测试数据,可以分割为 a, b, abaaba, b, a

其它样例说明

  • 样例 2 ~ 7:见选手目录下的 string/string*.instring/string*.ans。样例中的 CC 代表这组样例对应的实际测试点,其数据范围一致。
样例编号 22 33 44 55 66 77
CC 22 44 88 1313 1616 1717

数据范围

下文中 NN 表示单组测试点中所有测试数据 nn 的总和。 对于所有测试数据,均有输入的数字均为正整数, t100t \le 100n5×106n \le 5 \times 10^6N1×107N \le 1 \times 10^7 且串 SS 仅包含小写字母。

测试点编号 nn \le NN \le 特殊性质
11 5×1065 \times 10^6 1×1071 \times 10^7 A
2,32, 3 1010 2020
474 \sim 7 200200 500500
8128 \sim 12 50005000 5×1045 \times 10^4
131513 \sim 15 5×1065 \times 10^6 1×1071 \times 10^7 B
1616 C
172017 \sim 20
  • 特殊性质 A:满足 SS 全为字符 a
  • 特殊性质 B:满足 SS 中不存在任意两个相邻字母相同。
  • 特殊性质 C:满足 SS 随机生成,且 t=2t=2