B4520 [科大国创杯小学组 2026] 好串串
题目背景
民间数据
题目描述
快要小学毕业的小可可决定给好朋友小果果送毕业礼物。
现在小可可有一个长度为 $n$ 的小写字符串 $S$。
规定“好串串”是指前一半字典序单调不降、后一半字典序单调不升的回文串。
形式化地,长度为 $m$ 的“好串串” $S$ 满足:
* $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, \dots, m$,满足 $S_i = S_{m-i+1}$。
> 字典序是指小写字母表中的顺序(`a` 最小 `z` 最大);$\lceil \frac{m}{2} \rceil$ 是指 $\frac{m}{2}$ 上取整。
如 `z`,`bbb`,`accgcca`,`ccdeeedcc`,`ghg` 等是“好串串”;`acbca`,`syzzh`,`ccb` 等不是“好串串”。
现在小可可要把 $S$ 分割成若干个**不相交**的“好串串”送给小果果。因为小果果不想让书包里堆满“好串串”,所以小可可要让分割出的“好串串”个数尽量少。
可是小可可不会分割,请你来告诉她**最少**能分割成多少个“好串串”吧!
输入格式
**本题多组测试。**
第一行两个正整数 $C, t$,表示测试点编号和数据组数,对于样例 $1$ 满足 $C=0$。
接下来 $t$ 行,每行一个小写字符串 $S$,表示小可可的字符串。
输出格式
输出包含 $t$ 行,每行一个正整数,表示这组数据的答案。
说明/提示
#### ****样例解释****
* 对于第一组测试数据,可以分割为 `czc` 和 `cc`。
* 对于第二组测试数据,可以分割为 `a`, `b`, `aba` 或 `aba`, `b`, `a`。
#### ****其它样例说明****
* **样例 2 ~ 7**:见选手目录下的 `string/string*.in` 与 `string/string*.ans`。样例中的 $C$ 代表这组样例对应的实际测试点,其数据范围一致。
| 样例编号 | $2$ | $3$ | $4$ | $5$ | $6$ | $7$ |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| $C$ | $2$ | $4$ | $8$ | $13$ | $16$ | $17$ |
#### ****数据范围****
下文中 $N$ 表示单组测试点中所有测试数据 $n$ 的总和。
对于所有测试数据,均有输入的数字均为正整数,
$t \le 100$,$n \le 5 \times 10^6$,$N \le 1 \times 10^7$ 且串 $S$ 仅包含小写字母。
| 测试点编号 | $n \le$ | $N \le$ | 特殊性质 |
| :---: | :---: | :---: | :---: |
| $1$ | $5 \times 10^6$ | $1 \times 10^7$ | A |
| $2, 3$ | $10$ | $20$ | 无 |
| $4 \sim 7$ | $200$ | $500$ | 无 |
| $8 \sim 12$ | $5000$ | $5 \times 10^4$ | 无 |
| $13 \sim 15$ | $5 \times 10^6$ | $1 \times 10^7$ | B |
| $16$ | $5 \times 10^6$ | $1 \times 10^7$ | C |
| $17 \sim 20$ | $5 \times 10^6$ | $1 \times 10^7$ | 无 |
* 特殊性质 A:满足 $S$ 全为字符 `a`。
* 特殊性质 B:满足 $S$ 中不存在任意两个相邻字母相同。
* 特殊性质 C:满足 $S$ 随机生成,且 $t=2$。