Xor-MST
Xor-MST
这道题其实是一种最小生成树算法名曰 Boruvka
的算法,但是平时还是 Kruskal
算法用的说,相信大家也是由它想起的。
根据套路,由于要求的是异或边权之和的最小值,果断构建 01 trie
。我们将样例画出来
我们可以对这颗树进行 dfs
,可以看出两个点的 LCA
越深,那么它们合并代价就越小。上图中,先合并 \(2,3\),再将 \([1],[2,3]\) 合并(需要让 \(1\) 在右子树中走,尽量走某一位和自己一样的)。右边则是合并 \(4,5\),最后是 \([1,2,3],[4,5]\)。根据合并过程可知,如果一个点有两个儿子,当它回溯时,可以立即合并它的两个儿子。这里我们可以用启发式合并,尽量让左右儿子中子树更小者在另一边子树中探索,尽量往与自己一样的地方走。
复杂度暂时未知。
code
本文作者:wscqwq
本文链接:https://www.cnblogs.com/wscqwq/p/17467788.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步