E. Mahmoud and Ehab and the xor-MST(结论&Xor)

结论题。

完全图边权为 u ⊕ v u\oplus v uv ,求 M S T MST MST.

n = n − 1 n=n-1 n=n1

答案是 ∑ i = 1 n l o w b i t ( i ) \sum\limits_{i=1}^{n} lowbit(i) i=1nlowbit(i)

因为 n n n很大,考虑按位计算贡献。

l o w b i t ( i ) = x lowbit(i)=x lowbit(i)=x的个数是: f ( x ) f(x) f(x)

a n s = ∑ i = 1 2 i ≤ n f ( 2 i ) × 2 i ans=\sum\limits_{i=1}^{2^i\le n} f(2^i) \times 2^i ans=i=12inf(2i)×2i

每位的贡献是: ( n − 2 i ) 2 i + 1 + 1 \dfrac{(n-2^i)}{2^{i+1}}+1 2i+1(n2i)+1

这个手模一下就可以了。

时间复杂度: O ( l o g n ) O(logn) O(logn)

int main(){
	ll n,s=0;scanf("%I64d",&n);n--;
	for(ll i=1;i<=n;i<<=1)
		s+=((n-i)/(i<<1)+1)*i;
	printf("%I64d\n",s);
	return 0;
}