#CF2200G. Operation Permutation
Operation Permutation
题目描述
AksLolCoding 有一个整数 和一个包含 个操作的列表。每个操作是一个字符串,以符号 +、-、x 或 / 开头(分别表示加法、减法、乘法与实数除法),紧接着是一个正整数 ()。例如,操作 x3 表示将 乘以 。
AksLolCoding 会将这些操作随机排列,然后按照排列后的顺序依次作用在 上。请你帮助 AksLolCoding 计算 的期望 最终值对 取模后的结果。
更正式地,令 。可以证明答案可表示为不可约分数 ,其中 为整数,并且 。请输出满足 且 的整数 。
的期望最终值定义为 在所有 种操作排列顺序下的最终值的平均值。
输入格式
第一行包含一个整数 (),表示测试用例的组数。
每个测试用例的第一行包含两个整数 和 (,)。
每个测试用例的第二行包含 个字符串,每个字符串表示一种操作,格式如上所述。
所有测试用例中 的总和不超过 。
注意:x 表示乘法运算,不是乘号 *。
输出格式
对于每个测试用例,输出一个整数,表示 的期望最终值对 取模的结果。
样例
4
2 10
x2 -10
4 2
+6 +7 /1 -13
8 1
+1 x2 x3 +4 +5 +6 -7 -8
9 864209753
-918273645 x564738291 /365107362 x734582911 -654321789 x998244353 +172519103 /482193765 /482091376
5
2
166666677
601980218
样例说明
在第一个测试用例中, 可以变为 或 ,因此期望值为 。
在第二个测试用例中,所有排列下的结果均为 。
在第三个测试用例中, 的期望值为 。
由 ChatGPT 5 翻译
来源
Codeforces 2200G,英文题名 Operation Permutation。