传送门
可以看出,三个点两两之间的lca会有一对相同,而另一个lca就是聚集点。
然后搞搞就可以求出距离了。
——代码
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #define MAXN 1000001 5 6 using namespace std; 7 8 int n, m, cnt, ans; 9 int head[MAXN], to[MAXN], next[MAXN], deep[MAXN], f[MAXN][21]; 10 11 inline void add(int x, int y) 12 17 18 inline void dfs(int u) 19 28 } 29 30 inline int lca(int x, int y) 31 43 44 int main() 45 55 dfs(1); 56 for(i = 1; i <= m; i++) 57 65 return 0; 66 }View Code