| 比赛 |
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;
}