U360489求调
  • 板块题目总版
  • 楼主lyx0813
  • 当前回复3
  • 已保存回复3
  • 发布时间2025/1/23 20:38
  • 上次更新2025/1/24 01:01:26
查看原帖
U360489求调
1090042
lyx0813楼主2025/1/23 20:38
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,x,s[30],maxn=-1;
ll ans=0;
void turn(int x){
    ll now=0;
    while(x){
        now++;
        if(x%2){
            s[now]++;
        }
        x>>=1;
    }
    maxn=max(now,maxn);
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>x;
        turn(x);
    }
    for(int q=1;q<=maxn;q++){
        ans+=s[q]*(n+1-s[q])*(1<<(q-1));
    }
    cout<<ans<<endl;
    return 0;
}
2025/1/23 20:38
加载中...