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