LCA - Lowest Common Ancestor

题意翻译

## Description: 一棵树是一个简单无向图，图中任意两个节点仅被一条边连接，所有连通无环无向图都是一棵树。-Wikipedia 最近公共祖先（LCA）是……（此处省去对LCA的描述），你的任务是对一棵给定的树$T$以及上面的两个节点$u,v$求出他们的$LCA$。 ![](https://cdn.luogu.org/upload/vjudge_pic/SP14932/0b23f0487b06b8d674d23253a6db517f49ca3acf.png) **例如图中$9$和$12$号节点的$LCA$为$3$号节点** ## Input: 输入的第一行为数据组数$T$，对于每组数据，第一行为一个整数$N(1\leq N\leq1000)$，节点编号从$1$到$N$，接下来的$N$行里每一行开头有一个数字$M(0\leq M\leq999)$，$M$为第$i$个节点的子节点数量，接下来有$M$个数表示第$i$个节点的子节点编号。下面一行会有一个整数$Q(1\leq Q\leq1000)$，接下来的$Q$行每行有两个数$u,v$，输出节点$u,v$在给定树中的$LCA$。 输入数据保证只有一个根节点并且没有环。 ## Output: 对于每一组数据输出$Q+1$行，第一行格式为"Case i:"（没有双引号），i表示当前数据是第几组，接下来的$Q$行每一行一个整数表示一对节点$u,v$的$LCA$。 ## Sample Input:  1 7 3 2 3 4 0 3 5 6 7 0 0 0 0 2 5 7 2 7  ## Sample Output:  Case 1: 3 1  Translated by @_yxl_gl_

题目描述

A tree is an undirected graph in which any two vertices are connected by exactly one simple path. In other words, any connected graph without cycles is a tree. - Wikipedia The lowest common ancestor (LCA) is a concept in graph theory and computer science. Let T be a rooted tree with N nodes. The lowest common ancestor is defined between two nodes v and w as the lowest node in T that has both v and w as descendants (where we allow a node to be a descendant of itself). - Wikipedia Your task in this problem is to find the LCA of any two given nodes v and w in a given tree T. ### ![](https://cdn.luogu.com.cn/upload/vjudge_pic/SP14932/0b23f0487b06b8d674d23253a6db517f49ca3acf.png) **For example the LCA of nodes 9 and 12 in this tree is the node number 3.** ### Input The first line of input will be the number of test cases. Each test case will start with a number N the number of nodes in the tree, 1 <= N <= 1,000. Nodes are numbered from 1 to N. The next N lines each one will start with a number M the number of child nodes of the Nth node, 0 <= M <= 999 followed by M numbers the child nodes of the Nth node. The next line will be a number Q the number of queries you have to answer for the given tree T, 1 <= Q <= 1000. The next Q lines each one will have two number v and w in which you have to find the LCA of v and w in T, 1 <= v, w <= 1,000. Input will guarantee that there is only one root and no cycles. ### Output For each test case print Q + 1 lines, The first line will have “Case C:” without quotes where C is the case number starting with 1. The next Q lines should be the LCA of the given v and w respectively. ### Example  Input: 1 7 3 2 3 4 0 3 5 6 7 0 0 0 0 2 5 7 2 7 Output: Case 1: 3 1