注意到N最大只有1e6,但是xy最大有2e8,直接模拟2e8会超时
所以可以将1e6个区间离散化后模拟,模拟时的最坏情况为2e6满足题意
#include<iostream> #include<algorithm> using namespace std; int x[1000010],y[1000010],a[2000010],b[2000010]; int main() { ios::sync_with_stdio(0);cin.tie(0); int n,i,j,m,ans=0; cin>>n; for(i=1;i<=n;i++) { cin>>x[i]>>y[i]; a[i*2-1]=x[i]; a[i*2]=y[i]; } sort(a+1,a+1+n*2); m=unique(a+1,a+1+n*2)-a-1; for(i=1;i<=n;i++) { b[lower_bound(a+1,a+1+m,x[i])-a]++; b[lower_bound(a+1,a+1+m,y[i])-a+1]--; } b[0]=0; for(i=1;i<=m;i++) { b[i]+=b[i-1]; ans=max(ans,b[i]); } cout<<ans; return 0; }