#P13253. [GCJ 2014 #1C] Part Elf
[GCJ 2014 #1C] Part Elf
Description
Vida 说她是半精灵:她的祖先中至少有一个是精灵。但她不知道这个精灵是她的父母(1 代之前)、祖父母(2 代之前),还是更久远的祖先。帮她找找看吧!
成为半精灵的方式大致与你想象的一样。精灵、人类以及半精灵的孩子都是通过两个父母结合而诞生的。如果一位父母的精灵血统是 ,另一位是 ,那么他们的孩子的精灵血统将是 。例如,如果一个精灵血统是 的人与一个精灵血统是 的人生了孩子,那么这个孩子的精灵血统将是 。
Vida 确信一点:在 40 代之前,她有 位不同的祖先,而且每一位的精灵血统都是 或 。
Vida 说她的精灵血统是 。请告诉她,若她的精灵血统真的是 ,那么她家族中最少多少代之前可能出现过一位 的纯精灵祖先。如果不可能拥有精确为 的精灵血统,请告诉她这是不可能的!
Input Format
输入的第一行是测试用例数量 。接下来的 行中,每行包含一个分数,格式为 ,其中 和 均为整数。
Output Format
对于每个测试用例,输出一行,格式为 "Case #x: y",其中 是测试用例编号(从 1 开始), 是 Vida 家族中最少多少代之前可能出现过一位 的纯精灵祖先。如果 Vida 不可能拥有 的精灵血统,则 应为字符串 "impossible"(不带引号)。
5
1/2
3/4
1/4
2/23
123/31488
Case #1: 1
Case #2: 1
Case #3: 2
Case #4: impossible
Case #5: 8
Hint
请注意,第五个样例数据并不满足 Small 数据集的限制。即使你未能正确解出它,也可能已经正确解决了 Small 数据集。
样例解释
在第一个样例中,Vida 可以拥有一位 的父母和一位 的父母。也就是说,她的家族中 1 代之前就可能有一位纯精灵祖先,因此答案是 。
在第二个样例中,Vida 的父母可以是一个 的精灵和一个 的精灵。那么她的家族中也可以在 1 代之前出现纯精灵祖先,因此答案是 。
在第三个样例中,Vida 的父母可以是一个 的人类和一个 的精灵。而这个 的精灵父母可以是一个 的精灵和一个 的人类。那么家族中可能在 2 代之前出现纯精灵祖先,因此答案是 。
在第四个样例中,如果你的 40 代祖先都只可能是 或 的精灵,那么精确拥有 的精灵血统是不可能的。
注意
是的,Vida 的祖先非常之多。如果你觉得这个设定最不现实,请重新阅读有关精灵的部分。
限制条件
- 。
Small 数据集(8 分)
- 时间限制:
603 秒。 - 。
- 与 互质,即 是最简分数。
Large 数据集(12 分)
- 时间限制:
1205 秒。 - 。
- 与 不一定互质,即 不一定是最简分数。
翻译由 ChatGPT-4o 完成
京公网安备 11011102002149号