比赛 2026.4.4 评测结果 AATTTTTTTT
题目名称 区间 最终得分 20
用户昵称 郑霁桓 运行时间 48.599 s
代码语言 C++ 内存使用 8.30 MiB
提交时间 2026-04-04 12:38:13
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,q,m,a,b,l[500005],r[500005],t[1000005],p[1000005],s;
long long as,ps;
const long long M=666623333;
inline long long pw(long long x,int y){
    long long s=1;
    while(y){
        if(y&1) s*=x,s%=M;
        x*=x,x%=M,y>>=1;
    }
    return s;
}
int main(){
    freopen("interval.in","r",stdin);
    freopen("interval.out","w",stdout);
    ios::sync_with_stdio(false);
    cin>>n>>q;
    for(int i=1;i<=n;i++) cin>>l[i]>>r[i],t[i*2-1]=l[i],t[i*2]=r[i];
    sort(t+1,t+n+n+1);
    m=unique(t+1,t+n+n+1)-t-1;
    for(int i=1;i<=n;i++){
        l[i]=lower_bound(t+1,t+m+1,l[i])-t;
        r[i]=lower_bound(t+1,t+m+1,r[i])-t;
    }
    while(q--){
        cin>>a>>b;
        as=0;
        ps=b-a+1;
        ps=pw(ps*(ps+1)/2,M-2);
        for(int i=a;i<=b;i++){
            s=0;
            for(int j=i;j<=b;j++){
                for(int k=l[j];k<r[j];k++){
                    if(!p[k]) s+=t[k+1]-t[k];
                    p[k]=1;
                }
                as+=s*ps%M;
                as%=M;
            }
            for(int j=i;j<=b;j++){
                for(int k=l[j];k<r[j];k++){
                    p[k]=0;
                }
            }
        }
        cout<<as<<"\n";
    }
    return 0;
}