牛客OI賽制測試賽3毒瘤XOR
阿新 • • 發佈:2018-12-09
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e5 + 5; const int INF = 0x3f3f3f3f; const int mod = 1e9 + 7; int a[N],sum[N][32]; int n, q; int main() { scanf("%d",&n); for(int i = 1;i <= n;i ++) scanf("%d",&a[i]); for(int i = 1;i <= n;i ++){ for(int j = 0;j < 31;j ++){ sum[i][j] = sum[i-1][j] + ((a[i]>>j)&1); } } scanf("%d",&q); int l, r; while(q --){ scanf("%d%d",&l,&r); int ans = 0; for(int i = 0;i < 31;i ++){ if(2 * (sum[r][i] - sum[l-1][i]) < r - l + 1){ ans |= 1<<i; } } cout << ans << '\n'; } return 0; }