【JSOI冬令营2019 A组, Day1T1】小 L 的占卜

题目链接

Code:

#include
#define rep(i,j,k) for(int i=j;i<=k;i++)
#define rep2(i,j,k) for(int i=j;i>=k;i--)
using namespace std;
template void read(T &num){
    char c=getchar();num=0;T f=1;
    while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
    while(c>='0'&&c<='9'){num=(num<<3)+(num<<1)+(c^48);c=getchar();}
    num*=f;
}
template void qwq(T x){
    if(x>9)qwq(x/10);
    putchar(x%10+'0');
}
template void write(T x){
    if(x<0){x=-x;putchar('-');}
    qwq(x);putchar('\n');
}
int num,n,m;
struct wzy{
    int ll,rr,pos;
}qj[1000010];
maplast;
int co[1000010];int pre[1000010];int ans[1000010];
int nxt[1000010];bool flag[1000010];
inline bool cmp(wzy a,wzy b){
    return a.llqj[pos].ll){pos++;}
        while(i==qj[pos].ll){ans[qj[pos].pos]=((pre[qj[pos].rr]^pre[i-1])^query(qj[pos].rr));pos++;}
        change(i,co[i]);if(nxt[i]){change(nxt[i],co[i]);}
        if(pos==len+1)break;
    }
    
    rep(i,1,m){write(ans[i]);}
    return 0;
}

 

你可能感兴趣的:(位运算,树状数组)