@ruanxingzhi
2017-10-22T15:40:05.000000Z
字数 454
阅读 2682
现有一棵树。您需要写一个树上倍增算法,以实现如下操作:
A x 新建一个节点,将它作为x节点的儿子,编号为当前节点总数+1。Q k p1 p2 p3.... 查询p1,p2,p3...这些节点的LCA。其中k表示查询节点的个数。最初树上只有一个节点,编号为1。
多个节点的LCA定义为:这些节点的公共祖先中深度最大的。
第一行,一个正整数,表示操作个数。
接下来行,每行输入一个操作,格式如题目描述所述。
保证任何输入的数都是正整数。
对于每一个Q操作,输出一行一个正整数,表示所询问节点的LCA。
样例输入
7A 1A 2A 3A 1A 5A 5Q 2 3 6Q 2 6 7Q 2 4 2Q 3 7 6 5
样例输出
1525
解释
3,6的LCA是1。
6,7的LCA是5。
4,2的LCA是2。
7,6,5的LCA是5。
对于的数据,有。
对于的数据,有。
对于的数据,有。
保证询问不超过次。
