模拟赛 生成树

it2026-10-02  7

题目描述

给定 n n n 个点,第 i i i 个点有一个非负点权 a i a_i ai​。 这 n n n 个点连成了一张无向完全图,其中第 i i i 个点和第 j j j 个点连的边长度为 a i a_i ai​ 按位异或 a j a_j aj​。现在要求出这张无向完全图的最小生成树。 1 ⩽ n ⩽ 200000 , 0 ⩽ a i ⩽ 1073741823 1 \leqslant n \leqslant 200000,0 \leqslant a_i \leqslant 1073741823 1⩽n⩽200000,0⩽ai​⩽1073741823 时间限制2s,空间限制512MB。

题解

位运算问题常用贪心。将 a a a 排序并分为高位为 0 0 0和高位为 1 1 1两类。那么整个图的最小生成树则为高位为 0 0 0的数构成的最小生成树并上高位为 1 1 1的最小生成树再加上再两类中个选一个数的最小边权。高位相同的答案可以递归,高位不同时将高位为 0 0 0的数加入01字典树中,再将高位为 1 1 1的数挨个在字典树中跑,从高位选择到低位,找出最小边权。 时间复杂度 O ( n l o g 2 2 m a x a ) O(nlog_2^2max_a) O(nlog22​maxa​),空间复杂度 O ( n l o g 2 m a x a ) O(nlog_2max_a) O(nlog2​maxa​)。

最新回复(0)