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