Wannafly Camp 2020 Day 2C 纳新一百的石子游戏

为什么为了这么个简单题发博客呢?
因为我又因为位运算运算符优先级的问题血了

#include <bits/stdc++.h>
using namespace std;

#define int long long
const int N = 100005;

int n,a[N][62],t[62];

signed main() {
    ios::sync_with_stdio(false);
    cin>>n;
    int sum=0,tmp=0;
    for(int i=1;i<=n;i++) {
        cin>>tmp;
        sum^=tmp;
        for(int j=60;j>=0;--j) t[j]=(sum>>j)&1;
        for(int j=60;j>=0;--j) a[i][j]=a[i-1][j]+((tmp>>j)&1);
        if(sum==0) cout<<0<<endl;
        else {
            int k=60;
            while(t[k]==0) --k;
            cout<<a[i][k]<<endl;
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/mollnn/p/12232039.html