这道题很明显的LCA了 一般求LCA方法 先建树,求的 如果深度不相同,先把深的那个点向上爬到同一层 如果已经跳到相同层了,就一起向上跳,直到 2. 倍增求LCA 在1的基础上改进,引入了一个预处理好的表来记录往上跳步的祖先 需要先把这个表预处理出来(可以在建树的时候就预处理出跳表) void dfs_build(vector<string>& mtx, int u, int father) { vis[u] = true; level[u] = level[father]+1; //更新当前递归到的点的深度 up[u][0] =...