TouchStone
  请登录后使用
登录 注册
 系统首页  练习题库  考试列表  判题结果  问题讨论与解答  统计信息与排名
  • 首页
  • 题库
  • P2447
  • 题目
  • P2447最近公共祖先
    限制 : 时间限制 : 10000 MS   空间限制 : 65536 KB
    问题描述

    给出一棵有N(编号1到N)个节点的有根树,求出指定节点对的最近公共祖先!

    对于树中节点x而言,从根节点到达x的这一条路径中经过的所有节点,都称为x的祖先。
    如上图所表示的树中, 根节点为8。8、4、10、16都是12的祖先。对于6和12这对节点而言,从6出发往上朝根走和从12出发往上朝根走的两条路径最早交汇的地点是4号节点,因此4号点是6和12的最近公共祖先。
    同理,11和9的最近公共祖先是8; 10和3的最近公共祖先是10;2和7的最近公共祖先是4......

    输入格式

    第一行,一个整数N。表示树中节点总数
    接下来N-1行,每行两个整数x和y,表示x是y的父亲。
    接下来一行,一个整数M,表示询问的总数
    接下来M行,每行两个整数a和b,表示询问a和b的最近公共祖先。

    输出格式

    M行,每行一个整数,表示对应询问的答案。

    样例输入

    输入样例1:
    16 
    1 14
    8 5
    10 16
    5 9
    4 6
    8 4
    4 10
    1 13
    6 15
    10 11
    6 7
    10 2
    16 3
    8 1
    16 12
    3
    16 7
    14 9
    3 10
    输入样例2:

    5
    2 3
    3 4
    3 1
    1 5
    2
    3 5
    4 5

    样例输出

    输出样例1:
    4
    8
    10
    输出样例2:
    3
    3

    提示

    2<=N<=10000
    1<=M<=10000


    来源  改编自POJ1330