?
# | Author | Problem | Lang | Verdict | Time | Memory | Sent | Judged | |
---|---|---|---|---|---|---|---|---|---|
231904213 |
Practice: luogu_bot4 |
1511G - 11 | C++20 (GCC 11-64) | Accepted | 483 ms | 17220 KB | 2023-11-08 11:19:37 | 2023-11-08 11:19:37 |
// LUOGU_RID: 133972343 #include<bits/stdc++.h> using namespace std; const int N=2e5+5; int n,m,q,a[N]; int f[21][N]; int main(){ cin>>n>>m;int x,y,L=__lg(m); for(int i=1;i<=n;++i)scanf("%d",&x),a[x]++; for(int i=1;i<=m;++i)a[i]+=a[i-1]; for(int j=1,k=1;j<=L;++j,k<<=1)for(int i=1;i+k+k-1<=m;++i) f[j][i]=f[j-1][i]^f[j-1][i+k]^(k*((a[i+k+k-1]-a[i+k-1])&1)); cin>>q; while(q--){ scanf("%d%d",&x,&y),y=y-x+1; int sum=0,ans=0; for(int i=L;i>=0;--i)if(y&(1<<i)) ans^=f[i][x]^(((a[x+(1<<i)-1]-a[x-1])&1)*sum),sum+=1<<i,x+=1<<i; putchar(ans?'A':'B'); } }
?
?
?
?