Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
55148 | wssdr | 线性基 (basis) | C++ | 通过 | 100 | 10 MS | 1044 KB | 470 | 2022-08-09 11:39:39 |
#include<bits/stdc++.h> #define ll long long #define N 200005 using namespace std; int n,cnt[25];ll x[N],ans; int main(){ // freopen("basis.in","r",stdin); // freopen("basis.out","w",stdout); scanf("%d",&n); for(int i(1);i<=n;++i){ int a;scanf("%d",&a); for(int k(0);a;++k,a>>=1) cnt[k]+=(a&1); } for(int k(0);k<=20;++k) for(int i(1);i<=cnt[k];++i) x[i]|=(1<<k); for(int i(1);i<=n;++i) ans+=x[i]*x[i]; printf("%lld\n",ans); return 0; }