LCA + 并查集 Happy Tree Party codeforces593D
一个64位的数,最多在被大于1的数整除64次后就变为0
所以对于每次访问,我们最多除64次
那么我们就要将为1的路压缩,使用并查集
每次访问使用lca,找到公共祖先lc,然后u->lc,v->lc,访问这两条路
记得并查集的时候要用
return par[u] == u ? u : par[u] = find(par[u]);
不要用
return par[u] == u ? u :
原创
2015-11-17 17:22:35 ·
514 阅读 ·
0 评论