比赛 2026.9.12 评测结果 AAAAAAAAAA
题目名称 画线 最终得分 100
用户昵称 rzzakioi 运行时间 0.700 s
代码语言 C++ 内存使用 8.08 MiB
提交时间 2026-09-12 12:25:04
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,q;
const int a=193470087,b=889243470,c=193300875,mod=1e9+7;
int f[1000005];
void add(int x,int v){
    for(int i=x;i<=n;i+=(i&(-i)))f[i]+=v;
}
int ask(int x){
    int ans=0;
    for(int i=x;i>=1;i-=(i&(-i)))ans+=f[i];
    return ans;
}
signed main(){
    freopen("circle.in","r",stdin);
    freopen("circle.out","w",stdout);
    scanf("%lld%lld",&n,&q);
    while(q--){
        int x,y;
        scanf("%lld%lld",&x,&y);
        if(x>y)swap(x,y);
        if(ask(x)!=ask(y)){
            printf("No\n");
        }
        else{
            printf("Yes\n");
            int p=q;
            int num=a*p;
            num%=mod;
            num*=p;
            num%=mod;
            num+=b*p;
            num%=mod;
            num+=c;
            num%=mod;
            add(x,num);
            add(y+1,-num);
        }
    }
    return 0;
}