AtCoder Regular Contest 098/AtCoder Beginner Contest 098 D問題 - Xor Sum 2

Source

AtCoder Regular Contest 098
AtCoder Beginner Contest 098
問題文 (ARC)
問題文 (ABC)

問題概要

省略

解法

省略

cLayversion 20190822-2)のコード

C++に変換後のコードはこちら

int N, A[2d5];
int cnt[20];

int isok(int x){
  rep(i,20) if( (x&1<<i) && cnt[i] ) return 0;
  return 1;
}

void add(int x, int v){
  rep(i,20) if(x&1<<i) cnt[i] += v;
}

{
  int i, j;
  ll res = 0;
  rd(N,A(N));

  j = 0;
  rep(i,N){
    while(j < N && isok(A[j])) add(A[j++], 1);
    res += j - i;
    add(A[i], -1);
  }

  wt(res);
}

Current time: 2021年09月28日07時57分09秒
Last modified: 2019年08月26日08時59分33秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Regular_Contest AtCoder_Beginner_Contest ARC098 ABC098 ARC_B ABC_D
トップページに戻る

Logged in as: unknown user (not login)

ログイン: