Submission #803166

#TimeUsernameProblemLanguageResultExecution timeMemory
803166Essa2006XORanges (eJOI19_xoranges)C++14
0 / 100
62 ms5612 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define endl '\n' #define FF first #define SS second #define all(a) a.begin(), a.end() #define mod (ll)(1000000007) const int pr=20, s_p=1<<pr, e_p=(1<<(pr+1))-1; int n, q; vector<vector<vector<int>>>S; void pre(){ S.clear(); S.resize(2, vector<vector<int>>(34, vector<int>(1<<(pr+2)))); } //void update(int par, int j, int ind, int new_){ // S[par][j][ind]=new_; // S[!par][j][ind]=0; // while(ind/=2){ // S[par][j][ind]=S[par][j][ind*2]^S[par][j][ind*2+1]; // S[!par][j][ind]=S[!par][j][ind*2]^S[!par][j][ind*2+1]; // } //} // //bool get(int id, int u, int v, int l, int r, int par, int j){ // if(l>v || r<u) // return 0; // if(l>=u && r<=v) // return S[par][j][id]; // int md=(l+r)/2; // return get(id*2, u, v, l, md, par, j)^get(id*2+1, u, v, md+1, r, par, j); //} signed main(){ ios_base::sync_with_stdio(0);cin.tie(0); cin>>n>>q; //pre(); for(int i=1, a;i<=n;i++){ cin>>a; for(int j=0;j<=31;j++){ //update(i&1, j, i+s_p, ((a&(1<<j))!=0)); } } while(q--){ int type, i, x; cin>>type>>i>>x; if(type==1){ for(int j=0;j<=31;j++){ //update(i&1, j, i+s_p, ((x&(1<<j))!=0)); } } else if(type==2){ int ans=0; for(int j=0;j<=31 && (x-i+1)&1;j++){ bool odd=1;//get(1, i+s_p, x+s_p, s_p, e_p, i&1, j); if(odd) ans+=1<<j; } cout<<ans<<endl; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...