CFCF2200G.Operation Permutation

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

AksLolCoding 有一个整数 xx 和一个包含 nn 个操作的列表。每个操作是一个字符串,以符号 +、-、x 或 / 开头(分别表示加法、减法、乘法与实数除法),紧接着是一个正整数 yy1y1091 \leq y \leq 10^9)。例如,操作 x3 表示将 xx 乘以 33

AksLolCoding 会将这些操作随机排列,然后按照排列后的顺序依次作用在 xx 上。请你帮助 AksLolCoding 计算 xx 的期望 ^\ast 最终值对 109+710^9+7 取模后的结果。

更正式地,令 M=109+7M = 10^9 + 7。可以证明答案可表示为不可约分数 pq\frac{p}{q},其中 p,qp,q 为整数,并且 q≢0(modM)q \not\equiv 0 \pmod M。请输出满足 0a<M0 \leq a < Maqp(modM)a \cdot q \equiv p \pmod M 的整数 aa

^\ast xx 的期望最终值定义为 xx 在所有 n!n! 种操作排列顺序下的最终值的平均值。

输入格式

第一行包含一个整数 tt1t10001 \leq t \leq 1000),表示测试用例的组数。

每个测试用例的第一行包含两个整数 nnxx1n30001 \leq n \leq 30001x1091 \leq x \leq 10^9)。

每个测试用例的第二行包含 nn 个字符串,每个字符串表示一种操作,格式如上所述。

所有测试用例中 n2n^2 的总和不超过 300023000^2

注意:x 表示乘法运算,不是乘号 *。

输出格式

对于每个测试用例,输出一个整数,表示 xx 的期望最终值对 109+710^9+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

说明/提示

在第一个测试用例中,xx 可以变为 (102)10=10(10\cdot 2)-10=10(1010)2=0(10-10)\cdot 2=0,因此期望值为 55

在第二个测试用例中,所有排列下的结果均为 x=2x=2

在第三个测试用例中,xx 的期望值为 556\frac{55}{6}

首页