3.8 —— cf div2 848 E(线性基合并)
E. The Tree Has Fallen!
快开学了,尝试恢复每日一题 day1。
做法看 cup-pyy 大佬的题解即可,这里主要记录一下线性基合并相关的知识。
线性基本质上就是某个数集的一个大小为 \(O(二进制位数) = O(\log)\) 的规模很小的集合。可以利用这个集合高效地处理出原集合有关异或的很多信息(比如子集异或最值等)。
直接往已知线性基中插入某个数,可以 \(O(\log)\) 实现,这个我们都会。
同样地,我们也可以快速实现合并两个集合的线性基,进而得到两个集合合并后的大集合的线性基 —— 只需要将其中一个集合的线性基中的 \(O(\log)\) 个元素均插入到另一个集合的线性基就可以了,复杂度 \(O(\log^{2})\)。

浙公网安备 33010602011771号