【2020 NOIP】字符串匹配

xu942457 程序题 共 个子题

小C学习完了字符串匹配的相关内容,现在他正在做一道习题。

对于一个字符串 $S$,题目要求他找到 $S$ 的所有具有下列形式的拆分方案数:

$S = ABC$,$S = ABABC$,$S = ABAB\ldots ABC$,其中 $A, B, C$ 均是非空字符串,且 $A$ 中出现奇数次的字符数量不超过 $C$ 中出现奇数次的字符数量。

更具体地,定义 $AB$ 表示两个字符串 $A, B$ 相连接,例如 $A = \texttt{aab}$,$B = \texttt{ab}$,则 $AB = \texttt{aabab}$。

并递归地定义 $A^1 = A$,$A^n = A^{n-1}A$($n\geq2$ 且为正整数)。例如 $A = \texttt{abb}$,则 $A^3 = \texttt{abbabbabb}$。

则小C的习题是求 $S = (AB)^i C$ 的方案数,其中 $F(A) \leq F(C)$,$F(S)$ 表示字符串 $S$ 中出现奇数次的字符的数量。两种方案不同当且仅当拆分出的 $A$、$B$、$C$ 中有至少一个字符串不同。

输入描述

本题有多组数据,输入文件第一行一个正整数 $T$ 表示数据组数。

每组数据仅一行一个字符串 $S$,意义见题目描述。$S$ 仅由英文小写字母构成。

输出描述

对于每组数据输出一行一个整数表示答案。

输入样例1

3
nnrnnr
zzzaab
mmlmmlo

输出样例1

8
9
16

输入样例2

5
kkkkkkkkkkkkkkkkkkkk
lllllllllllllrrlllrr
cccccccccccccxcxxxcc
ccccccccccccccaababa
ggggggggggggggbaabab

输出样例2

156
138
138
147
194

提示

样例#1解释

对于第一组数据,所有的方案为:

  1. $A = \texttt{n}$,$B = \texttt{nr}$,$C = \texttt{nnr}$。
  2. $A = \texttt{n}$,$B = \texttt{nrn}$,$C = \texttt{nr}$。
  3. $A = \texttt{n}$,$B = \texttt{nrnn}$,$C = \texttt{r}$。
  4. $A = \texttt{nn}$,$B = \texttt{r}$,$C = \texttt{nnr}$。
  5. $A = \texttt{nn}$,$B = \texttt{rn}$,$C = \texttt{nr}$。
  6. $A = \texttt{nn}$,$B = \texttt{rnn}$,$C = \texttt{r}$。
  7. $A = \texttt{nnr}$,$B = \texttt{n}$,$C = \texttt{nr}$。
  8. $A = \texttt{nnr}$,$B = \texttt{nn}$,$C = \texttt{r}$。

数据范围

测试点编号 $|S|\leq$ 特殊性质
$1 \sim 4$ $10$ 无
$5 \sim 8$ $100$ 无
$9 \sim 12$ $1000$ 无
$13 \sim 14$ $2^{15}$ $S$ 中只包含一种字符
$15 \sim 17$ $2^{16}$ $S$ 中只包含两种字符
$18 \sim 21$ $2^{17}$ 无
$22 \sim 25$ $2^{20}$ 无

对于所有测试点,保证 $1 \leq T \leq 5$,$1 \leq |S| \leq 2^{20}$。

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧