0
点赞
收藏
分享

微信扫一扫

蓝桥杯第21场小白入门赛补题

香小蕉 2024-11-06 阅读 15

5.蓝桥派对

思路 :一个区间与多少个其他区间有关联,先对所有区间左端点和右端点从小到大排序,对于每个询问,我们先算出[1,r]这个区间里有多少个区间的起点即区间总数,使用upper_bound函数,然后使用lower_bound函数计算出第一个大于等于l的右端点是第几个,然后起点个数减终点个数再减去自身即为与其他区间有关联的个数

Code:

constexpr int N=4e5+5,mod=1e9+7;

PII q[N];
int a[N],b[N];

void solve()
{
int n,m;cin>>n>>m;
for(int i=0;i<n;i++)
{
int x,y;cin>>x>>y;
q[i]={x,y};
a[i]=x,b[i]=y;
}
sort(a,a+n);
sort(b,b+n);
for(int i=0;i<n;i++)
{
int l=q[i].first,r=q[i].second;
int x=upper_bound(a,a+n,r)-a;
int y=lower_bound(b,b+n,l)-b;
cout<<x-y-1<<endl;
}
}
举报

相关推荐

0 条评论