CFCF2200G.Operation Permutation
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
AksLolCoding 有一个整数 x 和一个包含 n 个操作的列表。每个操作是一个字符串,以符号 +、-、x 或 / 开头(分别表示加法、减法、乘法与实数除法),紧接着是一个正整数 y(1≤y≤109)。例如,操作 x3 表示将 x 乘以 3。
AksLolCoding 会将这些操作随机排列,然后按照排列后的顺序依次作用在 x 上。请你帮助 AksLolCoding 计算 x 的期望 ∗ 最终值对 109+7 取模后的结果。
更正式地,令 M=109+7。可以证明答案可表示为不可约分数 qp,其中 p,q 为整数,并且 q≡0(modM)。请输出满足 0≤a<M 且 a⋅q≡p(modM) 的整数 a。
∗ x 的期望最终值定义为 x 在所有 n! 种操作排列顺序下的最终值的平均值。
输入格式
第一行包含一个整数 t(1≤t≤1000),表示测试用例的组数。
每个测试用例的第一行包含两个整数 n 和 x(1≤n≤3000,1≤x≤109)。
每个测试用例的第二行包含 n 个字符串,每个字符串表示一种操作,格式如上所述。
所有测试用例中 n2 的总和不超过 30002。
注意:x 表示乘法运算,不是乘号 *。
输出格式
对于每个测试用例,输出一个整数,表示 x 的期望最终值对 109+7 取模的结果。
输入输出样例
输入#1
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
输出#1
5 2 166666677 601980218
说明/提示
在第一个测试用例中,x 可以变为 (10⋅2)−10=10 或 (10−10)⋅2=0,因此期望值为 5。
在第二个测试用例中,所有排列下的结果均为 x=2。
在第三个测试用例中,x 的期望值为 655。