题目:A sequence of positive rational numbers is defined as follows:
An infinite full binary tree labeled by positive rational numbers is defined by:
• The label of the root is 1/1.
• The left child of label p/q is p/(p + q).
• The right child of label p/q is (p + q)/q.
The top of the tree is shown in the following figure:
The sequence is defined by doing a level order (breadth first) traversal of the tree (indicated by the
light dashed line). So that:
F(1) = 1/1, F(2) = 1/2, F(3) = 2/1, F(4) = 1/3, F(5) = 3/2, F(6) = 2/3, …
Write a program which finds the value of n for which F(n) is p/q for inputs p and q.
题目大意:有一个二叉树,根节点为(1,1)。对于每一个节点(p,q),其左节点为(p,p+q),右节点为(p+q,q),先给出一个节点形如(p,q),请问其在原树的顺序中是第几个(即对原树进行BFS后本节点的BFS编号)。
题解:本题实际上就是一个二叉树的变种,对每一个读入的节点,我们都可以知道它的上一个节点,以此类推,可以知道其整个枝条。有由二叉树性质,每个