题解 - C F 888 G \mathrm{CF888G} CF888G
题目意思
-
给你一张完全图,每个点有个权值 a i a_i ai,对于一条 ( u , v ) (u,v) (u,v) 边的权值 W ( u , v ) = a u ⊕ a v W_{(u,v)}=a_u\oplus a_v W(u,v)=au⊕av。求这张完全图的最小生成树。
-
n ≤ 2 × 1 0 5 n\leq 2\times 10^5 n≤2×105
S o l \mathrm{Sol} Sol
-
我们考虑到异或最小就想到让高位尽量保持相等。具体地,就是对每一个 a i a_i ai 建一颗 T r i e \mathrm{Trie} Trie 树,要使得异或值最小显然就是尽量走同一条路径。
-
于是我们要计算每一颗子树的贡献,于是考虑启发式合并。每次我们做 s i z siz