#P13350. 「ZYZ 2025」遗传

「ZYZ 2025」遗传

题目背景

唉,转生竞吧!

题目描述

如果你不了解生物的遗传学知识,可以阅读以下部分:

每个生物 M 都有两个属性,记属性一为 X{A,a}X\in\{A,a\},属性二为 Y{A,a}Y\in\{A,a\},称 XYXY 为其基因型,包括 AA,Aa,aaAA,Aa,aa 三种,这里认为 AaAaaAaA 等价。

对于生物 M 可患的遗传病 I,若 I 为隐性遗传病,则该生物患病当且仅当其基因型为 aaaa,若 I 为显性遗传病,则该生物患病当且仅当其基因型为 AaAaAAAA

若基因型为 X1Y1X_1Y_1X2Y2X_2Y_2 的生物交配,则其后代的基因型有四种情况:X1X2,X1Y2,Y1X2,Y1Y2X_1X_2,X_1Y_2,Y_1X_2,Y_1Y_2,且每种情况的概率相同,均为 14\dfrac{1}{4}

AA基因频率pp,则认为在没有其他条件的影响下(在本题中“其他条件”包括“知道其父母”),一个生物 M 的两个属性各自有 pp 的概率为 AA1p1-p 的概率为 aa,且相互独立。

现在有一种生物 M 可患的遗传病 I,已知其是显性还是隐性,AA 的基因频率为 pp

否则,你可以阅读以下部分:

现在有一种和生物 M 有关的遗传病 I,已知其是显性还是隐性,其受一对常染色体等位基因 (A,a)(A,a) 控制,该基因的遗传符合孟德尔遗传规律,不考虑基因突变、染色体变异,交叉互换等特殊情况。

已知 AA 的基因频率是 pp,即认为在没有其他条件的影响下(在本题中“其他条件”包括“知道其父母”),一个生物 M 的两个基因各自有 pp 的概率为 AA1p1-p 的概率为 aa,且相互独立。

现在有 nn 个生物 M,第 ii 个生物的父亲为 faifa_i,母亲为 moimo_i,若 fai=0fa_i=0moi=0mo_i=0 则表示父亲或母亲未知。为了简化问题,保证 faifa_imoimo_i 要么均为 00,要么均不为 00,且恰有一个生物 M 没有孩子,其余生物 M 恰有一个孩子

给出 nn 个生物的关系,已知部分生物的患病情况,你需要分别求出每一个生物基因型为 AA,Aa,aaAA,Aa,aa 的概率,对 109+710^9+7 取模。

你可以参见样例解释以更好的理解这个题目。

保证数据合法且保证数据随机生成

输入格式

第一行输入四个整数 n,t,a,bn,t,a,bnn 表示生物总数,t=0t = 0 表示疾病 I 为隐性,t=1t = 1 表示疾病 I 为显性,AA 的基因频率 p=abp=\dfrac{a}{b}

接下来 nn 行,第 ii 行首先输入一个整数 kik_i,若 ki=0k_i=0 表示第 ii 个生物患病,ki=1k_i=1 表示不患病,ki=2k_i=2 表示患病状况未知。再输入两个整数 fai,moifa_i,mo_i 分别表示其父亲、母亲的编号,若编号为 00,则表示父母未知。

输出格式

输出 nn 行,其中的第 ii 行输出三个整数,分别表示第 ii 个生物基因型为 AA,Aa,aaAA,Aa,aa 的概率,结果对 109+710^9+7 取模。

3 0 1 2
2 0 0
0 0 0
1 1 2
500000004 500000004 0
0 0 1
0 1 0

提示

【样例解释】

记第 ii 个生物为 MiM_i,其基因型为 SiS_i。由于 M2M_2 患隐性遗传病,所以 S2=aaS_2=aaM3M_3 含有基因(属性)aa。又因为 M3M_3 不患病,所以 S3=AaS_3=Aa

因为 M1M_1 和患病的 M2M_2 生出不患病的 M3M_3,所以 M1M_1 一定不患病。因为 p=12p=\dfrac12,所以对于一个随机的不患病的个体,其基因型为 AAAAAaAa 的概率之比为:

$$\left(\dfrac12\times\dfrac12\right):\left(2\times\dfrac12\times(1-\dfrac12)\right)=1:2 $$

又因为基因型为 AAAAaaaa 的个体生出 AaAa 个体的概率为 11,基因型为 AaAaaaaa 的个体生出 AaAa 个体的概率为 12\dfrac12,所以 S1S_1AAAAAaAa 的概率之比为:

$$\left(\dfrac13\times1\right):\left(\dfrac23\times\dfrac12\right)=1:1 $$

所以 S1S_1AAAAAaAa 的概率相同,均为 12\dfrac12

【数据范围】

本题采用捆绑测试。

子任务编号 特殊性质 分值
00 n5n\leq5 1515
11 任意 i[1,n]i\in[1,n] 满足 ki=2k_i=2
22 n5×103n\leq 5\times 10^3 3030
33 4040

对于 100%100\% 的测试数据,保证:1fai,moin1051\leq fa_i,mo_i\leq n \leq10^5t{0,1}t\in\{0,1\}1a<b1091\leq a< b\leq 10^9ki{0,1,2}k_i\in\{0,1,2\},保证出现题目给出情况的概率在模 109+710^9+7 意义下不为 00保证数据随机生成