#L4319. 「ROIR 2023 Day2」字符串问题
「ROIR 2023 Day2」字符串问题
题目描述
译自 ROI Regional 2023 Day2 T4. Обыкновенная задача про строки
我们称两个字符串 和 是等价的,如果对于任意长度为 的字符串 , 在 中出现的次数与在 中出现的次数相同。
例如,字符串 aaaba、abaaa 和 baaab 彼此等价(aa 出现两次,ab 出现一次,ba 出现一次,bb 不出现),而字符串 abb 和 bba 则不等价。
在这个问题中,给定 个由字符 a、b 和 c 组成的字符串,对于每个字符串,需要计算有多少个与其等价的非空字符串,这些字符串也由 a、b 和 c 组成。由于这个数量可能非常大,需要输出其对 取模的结果。
输入格式
第一行输入一个整数 ,表示当前测试点所属的子任务编号。对于样例,。
第二行输入一个整数 ,接下来是 行,每行是一个由字符 a、b 和 c 组成的字符串。这些字符串的总长度不超过 。
输出格式
输出 个整数,对于每个字符串,输出与其等价的字符串数量对 取模的结果。
样例
输入
0
4
abaa
abca
ccbca
bacc
输出
3
3
2
1
样例解释
- 字符串
abaa等价的字符串有abaa、aaba、baab; - 字符串
abca等价的字符串有abca、bcab、cabc; - 字符串
ccbca等价的字符串有ccbca和cbcca; - 字符串
bacc仅等价于bacc。
数据范围与提示
详细子任务附加限制及分值如下表所示。
| 子任务 | 分值 | 附加限制 | 子任务依赖 |
|---|---|---|---|
| 1 | 字符串 不包含字符 c |
||
| 2 | 字符串 中 a 和 c 不相邻 |
1 | |
| 3 | |||
| 4 | 3 | ||
| 5 | 3,4 | ||
| 6 | ; | ||
| 7 | 无附加限制 | 1~6 |