misc#P23020. Hello World 3 Pro Max
Hello World 3 Pro Max
题目描述
很久以前,Markyzy 发明了一个名为 "Hello World" 的问题。
后来,Markyzy 发明了一个名为 "Hello World 2" 的问题,它是 "Hello World" 的一个更难版本。
两千年后,SPY 发明了一个名为 "Hello World 3" 的问题,它是 "Hello World" 的一个更难版本。
现在,SPY 正在发明一个名为 "Hello World 3 Pro Max" 的问题,它是 ...
SPY 有一个长度为 的字符串 ,由小写字母组成:。该字符串是按照以下方式随机生成的:对于 中的每个字符,它独立地从集合 中生成,生成概率分别为 。换句话说,字母 的概率是 ,字母 的概率是 ,以此类推。保证 的和等于 。
最初,字符串 的每个字符都是未知的。然后,SPY 将执行 次操作,有两种类型:
- 类型 1:
1 x c,表示 SPY 确定字符 是 。在本问题中,字符串 的字符从 1 开始索引,因此 可以表示为 。保证没有两个操作会相互冲突。 - 类型 2:
2 l r,表示 SPY 想知道在子串 中,子序列等于helloworld的期望数量,结果对 取模。这里, 表示从索引 开始到索引 结束的子串(形式化地,)。
在每次类型 2 的操作之后,你应该通过在新的一行输出期望值(对 取模)来回答查询。
输入格式
输入包含多个测试用例。
输入的第一行包含一个整数 ,表示测试用例的数量。
在每个测试用例中,接下来的几行提供详细信息:
第一行包含一个整数 ,表示字符串 的长度。
第二行包含 7 个整数 。令 为这些值的总和。字母的概率定义为 。
第三行包含一个整数 ,表示操作的数量。
接下来的 行描述操作,每行指定操作的类型和参数。
保证所有测试用例中 的总和不超过 , 的总和不超过 。
输出格式
在每次类型 2 的操作之后,在新的一行输出期望值,对 取模。
1
11
1 1 1 1 1 1 1
16
1 1 h
2 1 11
2 2 11
1 2 e
1 3 l
1 4 l
1 5 l
2 1 11
1 6 o
1 7 w
2 2 11
1 8 o
1 9 r
1 10 l
1 11 d
2 11 11
667718262
953066461
937670535
0
3
相关
在下列比赛中: