cf959E
题意简述:一个包含n个点的完全图,点的编号从0开始,两个点之间的权值等于两个点编号的异或值,求这个图的最小生成树
规律是 ∑ i from 0 to n-1 (i&-i)


#include <iostream>
using namespace std;
int main()
{
long long n,ans=0;
scanf("%I64d",&n);
n--;
for (long long i=1;i<=n;i<<=1)
ans+=((n-i)/(i<<1)+1)*i;
printf("%I64d",ans);
}
浙公网安备 33010602011771号