比赛 树状数组练习 评测结果 WWWWAWWWWW
题目名称 人工湖 最终得分 10
用户昵称 ChenBp 运行时间 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;
}