| 比赛 | 
    树状数组练习 | 
    评测结果 | 
    WWWWAWWWWW | 
    | 题目名称 | 
    人工湖 | 
    最终得分 | 
    10 | 
    | 用户昵称 | 
    梦那边的美好BP | 
    运行时间 | 
    0.820 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    3.83 MiB  | 
    | 提交时间 | 
    2025-06-11 21:05:16 | 
显示代码纯文本
#include <iostream> 
using namespace std;
const int N=1e5;
int n,m;
int t[N],s[N];
int lb(int x){
    return x&(-x);
}
void add(int x,int y){
    for(int i=x;i<=n;i+=lb(i)){
        s[i]+=y;
    }
}
int q(int x){
    int ans=0;
    for(int i=x;i>0;i-=lb(i)){
        ans+=s[i];
    }
    return ans;
}
int main(){
    freopen("lakee.in","r",stdin);
    freopen("lakee.out","w",stdout);
    cin>>n>>m;
    while(m--){
        int f,a,b;
        cin>>f>>a>>b;
        if(f==0){
            if(t[a]){
                add(a,-1);
                t[a]=0;
            }else{
                add(a,1);
                t[a]=1;
            }
        }else{
            if(q(b-1)-q(a)==0){
                cout<<"YES\n";
            }else{
                if(q(a-1)+q(n)-q(b)==0){
                    cout<<"YES\n";
                }else{
                    cout<<"NO\n";
                }
            }
        }
    }
    return 0;
}