N-Raksasa的数字

 

思路:用bitset快速转换二进制,用vector存储,根据抑或性质对每位进行运算

#include <bits/stdc++.h>
using namespace std;
#define inf 0x7ffffffffffffff
#define N 1005000
#define mod 1000000007
#define mod2 998244353
typedef long long ll;
using namespace std;
vector<bitset<32> >meme;
ll now[32];
int main()
{
    ll sum;cin>>sum;
    while(sum--)
    {
        ll n;
        meme.clear();
        memset(now,0,sizeof(now));
        cin>>n;
        for(int i=0;i<n;i++)
        {
            ll tem;cin>>tem;
            bitset<32> op(tem);
            meme.push_back(op);
        }
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<32;j++)
            {
                if(meme[i][j])
                now[j]++;
            }
        }
        ll ans=0;
        for(int i=0;i<32;i++)
        {
            if(now[i]>n/2)
            {
                ans+=pow(2,i);
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}

 

posted on 2022-04-17 09:48  zesure  阅读(28)  评论(0编辑  收藏  举报

导航