loj#P3387. 「NOIP2020」字符串匹配
「NOIP2020」字符串匹配
题目描述
小 C 学习完了字符串匹配的相关内容,现在他正在做一道习题。
对于一个字符串 ,题目要求他找到 的所有具有下列形式的拆分方案数: ,,,其中 ,, 均是非空字符串,且 中出现奇数次的字符数量不超过 中出现奇数次的字符数量。
更具体地,我们可以定义 表示两个字符串 相连接,例如 ,,则 。
并递归地定义 ,( 且为正整数)。例如 ,则 。
则小 C 的习题是求 的方案数,其中 , 表示字符串 中出现奇数次的字符的数量。两种方案不同当且仅当拆分出的 、、 中有至少一个字符串不同。
小 C 并不会做这道题,只好向你求助,请你帮帮他。
输入格式
从文件 string.in
中读入数据。
本题有多组数据,输入文件第一行一个正整数 表示数据组数。
每组数据仅一行一个字符串 ,意义见题目描述。 仅由英文小写字母构成。
输出格式
输出到文件 string.out
中。
对于每组数据输出一行一个整数表示答案。
3
nnrnnr
zzzaab
mmlmmlo
8
9
16
5
kkkkkkkkkkkkkkkkkkkk
lllllllllllllrrlllrr
cccccccccccccxcxxxcc
ccccccccccccccaababa
ggggggggggggggbaabab
156
138
138
147
194
样例 3
见附加文件中的 [string3.in
](file:string3.in) 与 [string3.ans
](file:string3.ans)。
样例 4
见附加文件中的 [string4.in
](file:string4.in) 与 [string4.ans
](file:string4.ans)。
数据范围与提示
测试点编号 | 特殊限制 | |
---|---|---|
无 | ||
中只包含一种字符 | ||
中只包含两种字符 | ||
无 | ||
对于所有测试点,保证 ,。