TouchStone
  Please Login
ログイン 登録
距离明年CSP第一轮: ??天 距离CSP第二轮: ??天 距离NOIP还有: ??天
 ホームページ  問題セット  試験一覧  提出状況  掲示板  統計情報
  • ホーム
  • 問題セット
  • 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