比赛 2026.9.12 评测结果 AAAAAAAAAA
题目名称 画线 最终得分 100
用户昵称 郑霁桓 运行时间 1.340 s
代码语言 C++ 内存使用 22.02 MiB
提交时间 2026-09-12 08:39:38
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,q,xx,yy;
unsigned long long tr[4000005],lz[4000005];
inline void ad(int x,int y,int l,int r,int p,unsigned long long v){
    if(x<=l&&r<=y){
        lz[p]+=v;
        tr[p]+=v;
        return;
    }
    int md=(l+r)>>1;
    if(x<=md) ad(x,y,l,md,p*2,v);
    if(md+1<=y) ad(x,y,md+1,r,p*2+1,v);
    return;
}
inline unsigned long long fd(int x,int l,int r,int p){
    if(l==r) return tr[p];
    int md=(l+r)>>1;
    if(lz[p]){
        lz[p*2]+=lz[p];
        lz[p*2+1]+=lz[p];
        tr[p*2]+=lz[p];
        tr[p*2+1]+=lz[p];
        lz[p]=0;
    }
    if(x<=md) return fd(x,l,md,p*2);
    return fd(x,md+1,r,p*2+1); 
}
int main(){
    freopen("circle.in","r",stdin);
    freopen("circle.out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0); 
    srand(time(0));
    cin>>n>>q;
    for(int i=1;i<=q;i++){
        cin>>xx>>yy;
        if(fd(xx,1,n,1)!=fd(yy,1,n,1)) cout<<"No\n";
        else{
            cout<<"Yes\n";
            if(xx>yy) swap(xx,yy);
            unsigned long long rd=rand()*rand()+rand();
            ad(xx,yy,1,n,1,rd);
        }
    }
    return 0;
}