#P16868. [GKS 2021 #H] Dependent Events

    ID: 19195 远端评测题 4000ms 1024MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>数学倍增2021最近公共祖先 LCA概率论Google Kick Start

[GKS 2021 #H] Dependent Events

题目描述

NN 个事件,编号为 11NN。每个事件的发生概率依赖于恰好另一个事件(称为父事件)的发生,但事件 11 除外,它是一个独立事件。换句话说,对于每个事件 ii2iN2 \le i \le N),给定三个值:PiP_i 表示事件 ii 的父事件,AiA_i 表示当父事件发生时事件 ii 发生的概率,BiB_i 表示当父事件不发生时事件 ii 发生的概率。对于事件 11,其发生概率 KK 已给出。我们需要回答 QQ 个查询。每个查询包含两个不同的事件 uju_jvjv_j,你需要求出事件 uju_jvjv_j 同时发生的概率。

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。

每个测试用例的第一行包含两个整数 NNQQ,分别表示事件的数量和查询的数量。接下来 NN 行描述每个事件。第一行包含一个整数 KK,表示事件 11 的发生概率乘以 10610^6。接下来的 N1N-1 行,每行包含三个整数 PiP_iAiA_iBiB_i,分别表示事件 ii 的父事件、当父事件发生时事件 ii 的发生概率乘以 10610^6,以及当父事件不发生时事件 ii 的发生概率乘以 10610^6。然后,有 QQ 行描述查询,每行包含两个不同的整数 uju_jvjv_j。对于每个查询,求出事件 uju_jvjv_j 同时发生的概率。

输出格式

对于每个测试用例,输出一行,格式为 Case #x: R1 R2 R3 ... RQ,其中 xx 是测试用例编号(从 11 开始),RjR_j 是为第 jj 个查询计算出的概率对 109+710^9 + 7 取模的结果,其精确定义如下。将第 jj 个查询的答案表示为最简分数 pq\frac{p}{q},则 RjR_j 必须满足模方程 Rj×qp(mod109+7)R_j \times q \equiv p \pmod{10^9 + 7},且 0Rj109+60 \le R_j \le 10^9 + 6。可以证明,在本问题的限制下,这样的 RjR_j 总是存在且唯一确定。

2
5 2
200000
1 400000 300000
2 500000 200000
1 800000 100000
4 200000 400000
1 5
3 5
4 2
300000
1 100000 100000
2 300000 400000
3 500000 600000
1 2
2 4
Case #1: 136000001 556640004
Case #2: 710000005 849000006

提示

对于样例 #1,第一个查询:事件 1155 同时发生的概率为(事件 11 发生的概率)×\times(在事件 11 发生的条件下事件 55 发生的概率)。事件 11 发生的概率为 0.20.2。已知事件 11 发生,事件 44 发生的概率为 0.80.8。因此,在事件 11 发生的条件下事件 55 发生的概率为 0.2×0.8+0.4×0.2=0.240.2 \times 0.8 + 0.4 \times 0.2 = 0.24(事件 44 发生时事件 55 发生的概率加上事件 44 不发生时事件 55 发生的概率)。事件 1155 同时发生的概率为 0.2×0.24=0.0480.2 \times 0.24 = 0.048。答案 0.0480.048 可化为分数 6125\frac{6}{125},可以验证 136000001136000001 满足输出部分所述的条件:136000001×1256(mod109+7)136000001 \times 125 \equiv 6 \pmod{10^9 + 7},且唯一确定。第二个查询:事件 5533 同时发生的概率为 0.103520.10352

对于样例 #2,第一个查询:事件 1122 同时发生的概率为(事件 11 发生的概率)×\times(在事件 11 发生的条件下事件 22 发生的概率)。由于 11 是事件 22 的父事件,给定事件 11 发生时事件 22 发生的概率即为 A2=0.1A_2 = 0.1。因此,事件 1122 同时发生的概率为 0.3×0.1=0.030.3 \times 0.1 = 0.03。输出为 3×102mod(109+7)=7100000053 \times 10^{-2} \bmod (10^9 + 7) = 710000005。第二个查询:事件 2244 同时发生的概率为 0.0570.057

限制条件

1T1001 \le T \le 100

对于每个 ii22NN1Pi<i1 \le P_i < i

对于所有 jj1uj,vjN1 \le u_j, v_j \le Nujvju_j \ne v_j

对于每个 ii22NN0Ai1060 \le A_i \le 10^6

对于每个 ii22NN0Bi1060 \le B_i \le 10^6

0K1060 \le K \le 10^6

测试集 1

2N10002 \le N \le 1000

1Q10001 \le Q \le 1000

测试集 2

最多 55 个测试用例满足:

2N2×1052 \le N \le 2 \times 10^5

1Q2×1051 \le Q \le 2 \times 10^5

其余测试用例满足:

2N10002 \le N \le 1000

1Q10001 \le Q \le 1000

翻译由 DeepSeek V4 Pro 完成