我们对于每个节点建立到根节点的线段树,即我们建立一颗主席树来维护 对于每个查询,答案是query(1, x) + query(1, y) - 2 * query(1, lca(x, y)) #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; const int N = 1e5 + 5; struct node//主席树 { int l; int r; int val;//存的是节点个数 }T[N * 50]; ...