Descrption
小 \(C\) 养了一些很可爱的兔子。
有一天,小 \(C\) 突然发现兔子们都是严格按照伟大的数学家斐波那契提出的模型来进行繁衍:一对兔子从出生后第二个月起,每个月刚开始的时候都会产下一对小兔子。我们假定,在整个过程中兔子不会出现任何意外。
小 \(C\) 把兔子按出生顺序,把兔子们从 \(1\) 开始标号,并且小 \(C\) 的兔子都是 \(1\) 号兔子和 \(1\)号兔子的后代。如果某两对兔子是同时出生的,那么小 \(C\) 会将父母标号更小的一对优先标号。
如果我们把这种关系用图画下来,前六个月大概就是这样的:
其中,一个箭头\(A\)→\(B\)表示\(A\)是\(B\)的祖先,相同的颜色表示同一个月出生的兔子。
为了更细致地了解兔子们是如何繁衍的,小 \(C\) 找来了一些兔子,并且向你提出了\(m\)个问题:她想知道关于每两对兔子\(a_i\)和\(b_i\),他们的最近公共祖先是谁。你能帮帮小 \(C\) 吗?
一对兔子的祖先是这对兔子以及他们父母(如果有的话)的祖先,而最近公共祖先是指两对兔子所共有的祖先中,离他们的距离之和最近的一对兔子。比如,\(5\) 和 \(7\) 的最近公共祖先是 \(2\),\(1\) 和 \(2\) 的最近公共祖先是 \(1\),\(6\) 和 \(6\) 的最近公共祖先是 \(6\)。
Input
Output
Sample Input
5
1 1
2 3
5 7
7 13
4 12
Sample Output
1
1
2
2
4
Hint
子任务会给出部分测试数据的特点。如果你在解决题目中遇到了困难,可以尝试只解决一部分测试数据。
每个测试点的数据规模及特点如下表:
特殊性质 1:保证\(a_i,b_i\)均为某一个月出生的兔子中标号最大的一对兔子。例如,对于前六个月,标号最大的兔子分别是 1, 2, 3, 5, 8, 13。
特殊性质 2:保证\(|a_i-b_i|\leq 1\)。
来源:
分析
原文:https://www.cnblogs.com/hbhszxyb/p/13425626.html