#P10101. [ROIR 2023 Day 2] 一个普通的字符串问题

[ROIR 2023 Day 2] 一个普通的字符串问题

题目背景

翻译自 ROIR 2023 D2T4

如果对于任意长度为 22 的字符串 uu,字符串 ssuu 的出现次数与字符串 ttuu 的出现次数相同,则两个字符串 sstt 称为等效字符串。因此,字符串 aaabaabaaabaaab 彼此等效(字符串 aa 出现两次,字符串 ab 出现一次,字符串 ba 出现一次,字符串 bb 不作为子串出现),而字符串 cffccf 则不等效。一个字符串和它本身是等效的。

题目描述

在这个问题中,你将会得到 QQ 个由字符 abc 组成的字符串,对于每个字符串,需要计算与它等效的由字符 abc 组成的非空字符串的数量。由于这个数量可能非常大,所以要求对 109+710^9 + 7 取余。

输入格式

第一行输入一个数 GG,表示当前子任务的编号(方便参赛选手打部分分)。在样例中 G=0G=0,本题另设一个分值为 00 的 Subtask 0 来存储样例数据。

第二行输入一个整数 qq

接下来 qq 行,每行一个字符串。

输出格式

对于每个字符串输出一行一个整数表示答案,记得取模 109+710^9+7

0
4
abaa
abca
ccbca
bacc
3
3
2
1

提示

样例说明:

  • 字符串 abaa 等效于字符串 abaaaababaab
  • 字符串 abca 等效于字符串 abcabcabcabc
  • 字符串 ccbca 等效于字符串 ccbcacbcca
  • 字符串 bacc 只等效于字符串 bacc

本题使用捆绑测试。

nin_i 表示第 ii 个输入字符串的长度,LL 表示所有字符串的长度之和,ww 表示所有查询中最大(未取模)的答案。

子任务编号 分值 特殊性质
00 输入数据与样例相同
11 1111 ss 中不含 c
22 1313 ssac 不相邻
33 1111 ni13n_i\le13
44 1010 L40L\le40
55 99 L60L\le60
66 1313 L105,w100L\le10^5,w\le100
77 3333

对于 100%100\% 数据,1q1051\le q\le10^5L106L\le10^6