178 人解决,269 人已尝试。
227 份提交通过,共有 843 份提交。
3.5 EMB 奖励。
单点时限: 2.0 sec
内存限制: 512 MB
ABO
血型系统是人类最早认识也是最为重要的血型系统,与人类输血时发生的溶血反应密切相关,具有重要的临床意义。该血型系统是由用A
、B
、O
标记的等位基因决定。每个人的血型里有两个被称为ABO
的等位基因。A
、B
、O
3种等位基因有6个可能的组合,每个组合决定一个人的ABO
血型:
等位基因组合 | ABO血型 |
---|---|
AA | A |
AB | AB |
AO | A |
BB | B |
BO | B |
OO | O |
除了ABO
血型之外,人类还有另一个血型系统就是Rh
血型系统。Rh
血型系统的等位基因分别用字符+
和-
表示阳性和阴性。每个人的血型里有两个等位基因表示血液中的Rh
因子。
等位基因组合 | Rh血型 |
---|---|
++ | Rh + (Rh阳性) |
+- | Rh + (Rh阳性) |
-- | Rh - (Rh阴性) |
一个人的血型是由ABO
型和Rh
因子结合在一起表示的。例如:A+
(表示A
型,Rh
阳性),AB-
(表示AB
型,Rh
阴性),O-
(表示O
型,Rh
阴性)。
血型是通过遗传获得的。每个生理上的父母贡献一个ABO
等位基因(随机地从他们自己的两个等位基因中挑选一个)和一个Rh
等位基因给他们的孩子。
假如,父母双方的血型都是A-
,则他们的孩子的血型可能是A-
或O-
。
A-血型的等位基因 | A-血型的等位基因 | 孩子可能的血型 |
---|---|---|
AA- - | AA- - | AA- -(A-),AO- -(A-),OO- -(O-) |
AO- - | AO- - |
如果父母双方的血型为A+
和B+
,那么他们的孩子的血型可以是任何一种。
A+血型的等位基因 | B+血型的等位基因 | 孩子可能的血型 |
---|---|---|
AA++ | BB++ | AB++(AB+),AO++(A+),AB+-(AB+),AO+-(A+),BO++(B+),OO++(O+),BO+-(B+),OO+-(O+),AB- -(AB-),AO- -(A-),BO- -(B-),OO- -(O-) |
AO++ | BO++ | |
AA+- | BB+- | |
AO+- | BO+- |
现给定父母双方的血型,要求确定孩子的可能血型集合,或者给定父母中某一方和孩子的血型,要求确定父母另一方的可能血型集合(可能为空集)。
本题的给分方式比较特殊,请认真阅读输入输出和提示中的给分说明。
第一行包含一个正整数 $T$ 表示数据组数,在样例中 $T = 5$,我们保证在所有不包括样例的数据中 $T = 100$。
之后 $T$ 行每行包含三个字符串,分别表示父亲的血型、母亲血型和孩子的血型。
对于待确定的血型用问号?
表示。
字符串之间用一个空格分隔,不包含其他多余字符。
你需要输出 $T$ 行,在一行中输出父亲、母亲和孩子的血型,中间用一个空分分隔。
如果父母中某一方没有一个可能的血型,则对应输出impossible
,如果父母或孩子有多种可能的血型,则输出所有可能的血型集合,并以一个花括号将所有可能的血型括起来。花括号中的血型的顺序按字典序升序排列,中间用一个逗号分隔。
你的输出中的第 $i$ 行应该严格对应为输入顺序第 $i$ 个问题,任何多余的字符都有可能这个问题被判定为错误。
5 O+ O- ? AB+ ? O+ A+ B+ ? ? O+ O- O- O- ?
O+ O- {O+,O-} AB+ impossible O+ A+ B+ {A+,A-,AB+,AB-,B+,B-,O+,O-} {A+,A-,B+,B-,O+,O-} O+ O- O- O- O-
本题将会测试样例和一组测试数据,虽然样例不计分,但请确保你的程序能够通过样例。
对于测试数据共 $T = 100$ 个问题,你答对的数量 $N$ 与最终得分 $S$ 的关系由下式。
$$S = \begin{cases}
\lfloor \frac{N^2}{105} \rfloor & (N<100) \
100 & ( N = 100 )
\end{cases}$$
再次提醒每行严格对应,否则可能影响评分。
178 人解决,269 人已尝试。
227 份提交通过,共有 843 份提交。
3.5 EMB 奖励。
创建: 6 年,7 月前.
修改: 1 年,8 月前.
最后提交: 5 月,2 周前.
来源: N/A