#P16470. [GKS 2013 #A] Rational Number Tree

[GKS 2013 #A] Rational Number Tree

题目描述

考虑一棵无限完全二叉树,其中根节点为 1/11/1,节点 p/qp/q 的左子节点和右子节点分别为 p/(p+q)p/(p+q)(p+q)/q(p+q)/q。这棵树如下图所示:

:::align{center} :::

已知每个正有理数在这棵树中恰好出现一次。对这棵树进行层序遍历,得到如下序列:

1/11/1, 1/21/2, 2/12/1, 1/31/3, 3/23/2, 2/32/3, 3/13/1, \dots

请解决以下两个问题:

  1. 找到序列中的第 nn 个元素,其中 nn11 开始。例如,对于输入 22,正确的输出是 1/21/2
  2. 给定 p/qp/q,找到它在序列中的位置。例如,输入 1/21/2 会得到输出 22

输入格式

第一行输入包含测试用例的数量 TT。接下来是 TT 个测试用例。每个测试用例占一行,包含一个问题编号(1122)以及一个或两个额外的整数:

  1. 如果问题编号为 11,则只给出一个整数 nn,你需要找到序列中的第 nn 个元素。
  2. 如果问题编号为 22,则给出两个整数 ppqq,你需要找到 p/qp/q 在序列中的位置。

输出格式

对于每个测试用例:

  1. 如果问题编号为 11,则输出一行形如 "Case #x: p q" 的内容,其中 xx 是测试用例编号(从 11 开始),p,qp, q 分别是所求序列元素的分子和分母。
  2. 如果问题编号为 22,则输出一行形如 "Case #x: n" 的内容,其中 xx 是测试用例编号(从 11 开始),nn 是给定数字的位置。
4
1 2
2 1 2
1 5
2 3 2
Case #1: 1 2
Case #2: 2
Case #3: 3 2
Case #4: 5

提示

限制

1T1001 \le T \le 100ppqq 互质。

测试集 1 - 可见

1n,p,q21611 \le n, p, q \le 2^{16}-1p/qp/q 是层编号不超过 1616 的树中的元素。

测试集 2 - 隐藏

1n,p,q26411 \le n, p, q \le 2^{64}-1p/qp/q 是层编号不超过 6464 的树中的元素。

翻译由 DeepSeek V4 Pro 完成