原题链接
CF959E Mahmoud and Ehab and the xor-MST
题目大意
一完全图有 n ( 2 ≤ n ≤ 1 0 12 ) n(2\leq n\leq 10^{12}) n(2≤n≤1012) 个节点 0 , ⋯ , n − 1 0,\cdots,n-1 0,⋯,n−1,其中边 ( i , j ) (i,j) (i,j) 的权值为 i ⊕ j i\oplus j i⊕j(其中 ⊕ \oplus ⊕ 为位异或操作),试求出最小生成树的边权和。
结题思路
数据规模高达 1 0 12 10^{12} 1012 ,肯定不可以使用最小生成树去做。盲猜一下时间复杂度,应该只能是 log 2 n \log_2n log2n。
经过思考,我们可以这么考虑:
首先,我们可以假设一对父子节点,父节点的编号为 a a a,子节点的编号为 b b b。
接着,为了保证不出现环,我们假设 a < b a<b a<b。
于是,我们可以得到,对于每个 b b