Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
55102 lz 线性基 (basis) C++ 通过 100 14 MS 1040 KB 562 2022-08-09 11:30:44

Tests(10/10):


#include <bits/stdc++.h> using namespace std; const int N=2e6+5; long long n; long long a[N]; long long s[30],p[30]; long long ans=0; int main(){ scanf("%lld",&n); for(int i=1;i<=n;i++) scanf("%lld",&a[i]); p[0]=1; for(int j=1;j<=20;j++) p[j]=p[j]*2; for(int i=1;i<=n;i++){ for(int j=0;j<=20;j++){ s[j]+=a[i]%2; a[i]/=2; } } for(int i=1;i<=n;i++){ long long cnt=0; for(int j=20;j>=0;j--){ cnt=cnt*2; if(s[j]>0){ cnt++; s[j]--; } } ans+=cnt*cnt; } printf("%lld\n",ans); return 0; }


测评信息: