ZJNU 1426

注意到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;
}
原文地址:https://www.cnblogs.com/stelayuri/p/12235274.html