给定 $n$ 个结点的无向完全图。每个点有一个点权为 $a_i$ 。连接 $i$ 号结点和 $j$ 号结点的边的边权为 $a_i\oplus a_j$
用$01$字典树找最小的边,显然根据异或的性质,就是不断找$lca$深度最大的的两个点。
$n$点正好有$n-1$个$lca$。
即对于所以可以成为$lca$的点暴力搜索两侧点对的最小值,选择小的那边启发式合并。$O(n\log^2n)$
代码
1 |
|
给定 $n$ 个结点的无向完全图。每个点有一个点权为 $a_i$ 。连接 $i$ 号结点和 $j$ 号结点的边的边权为 $a_i\oplus a_j$
用$01$字典树找最小的边,显然根据异或的性质,就是不断找$lca$深度最大的的两个点。
$n$点正好有$n-1$个$lca$。
即对于所以可以成为$lca$的点暴力搜索两侧点对的最小值,选择小的那边启发式合并。$O(n\log^2n)$
1 |
|