Gracekite's Homepage

Back

题意#

  • 给定 个结点的无向完全图。每个点有一个点权为 。连接 号结点和 号结点的边的边权为 。
  • 求这个图的 MST 的权值。
  • ,。

分析#

这道题是对01Trie的应用

乍一看以为是Kruskal,然后发现边数太多不现实。

我们将点权插入01Trie,任意两个点权之间的异或值就是它们到根节点路径上的对应节点的异或值的累加,那么我们就不难发现,树上两个叶子节点的LCA深度越深,它们的异或结果也就越小。

观察到 我们在01Trie中插入点权时,只有个节点是有个儿子,其他节点都只有个儿子,这个节点正好符合树形结构。

那我们只需要递归查找01Trie,对于每个有个子节点的节点,我们对左子树包含的所有点权与右子树中异或值最小的子树合并即可。

另外,我们可以发现,若将点权从小到大排序后插入,可以得到每一颗子树所代表的点权值是连续的,这可以方便我们的查询。

AC Code#

CF888G Xor-MST题解
https://betteroier.github.io/blog/cf888g-xor-mst%E9%A2%98%E8%A7%A3
Author Yuxuan Zheng
Published at August 5, 2023