codeforces 888G.Xor-MST(01字典树+贪心+最小异或生成树)

给你n个点,每条边的边权是两个点的异或和,问你造成最小生成树,须要的代价是多少。( n≤200000,ai≤230 )c++ 思路:把数都插到字典树里面,而后考虑两个数的合并,最小代价的话,应该是尽量相同的多,因此能够看作是两个子树的合并,那么插的时候记录一个siz,采起dfs,发现点root有左右儿子结点的时候,就能够合并了,合并的方式是枚举较小的子树中的每个数,而后跑到另外一个子树里去查最小异
相关文章
相关标签/搜索