#HK4319. 「ROIR 2023 Day2」字符串问题

「ROIR 2023 Day2」字符串问题

题目描述

译自 ROI Regional 2023 Day2 T4. Обыкновенная задача про строки

我们称两个字符串 sstt 是等价的,如果对于任意长度为 22 的字符串 uuuuss 中出现的次数与在 tt 中出现的次数相同。例如,字符串 aaabaabaaabaaab 彼此等价(aa 出现两次,ab 出现一次,ba 出现一次,bb 不出现),而字符串 abbbba 则不等价。

在这个问题中,给定 QQ 个由字符 abc 组成的字符串,对于每个字符串,需要计算有多少个与其等价的非空字符串,这些字符串也由 abc 组成。由于这个数量可能非常大,需要输出其对 109+710^{9}+7 取模的结果。

输入格式

第一行输入一个整数 GG,表示当前测试点所属的子任务编号。对于样例,G=0G=0

第二行输入一个整数 qq (1q105)(1 \leq q \leq 10^5),接下来是 qq 行,每行是一个由字符 abc 组成的字符串。这些字符串的总长度不超过 10610^6

输出格式

输出 qq 个整数,对于每个字符串,输出与其等价的字符串数量对 109+710^{9}+7 取模的结果。

0
4
abaa
abca
ccbca
bacc
3
3
2
1

字符串 abaa 等价的字符串有 abaaaababaab
字符串 abca 等价的字符串有 abcabcabcabc
字符串 ccbca 等价的字符串有 ccbcacbcca
字符串 bacc 仅等价于 bacc

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制 子任务依赖
11 1111 字符串 ss 不包含字符 c
22 1313 字符串 ssac 不相邻 11
33 1111 ni13n_{i} \leq 13
44 1010 L40L \leq 40 33
55 99 L60L \leq 60 3,43,4
66 1313 w100;L105w \leq 100 ; L \leq 10^5
77 3333 无附加限制 161\sim 6