179 人解决,270 人已尝试。
228 份提交通过,共有 854 份提交。
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}$$
再次提醒每行严格对应,否则可能影响评分。
179 人解决,270 人已尝试。
228 份提交通过,共有 854 份提交。
3.5 EMB 奖励。
创建: 7 年,6 月前.
修改: 2 年,7 月前.
最后提交: 1 月,1 周前.
来源: N/A