HDU 5124
map优先队列
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<map>
#include<queue>
using namespace std;
int dir[4][2]= {0,1,0,-1,1,0,-1,0};
#define ll long long
const int N=1e6+10;
struct node
{
int l,r;
}p[N];
int b[N];
int dp[N];
int main()
{
int T,j,n,i;
scanf("%d",&T);
while(T--)
{
map<int,int>mp;
memset(b,0,sizeof(b));
memset(p,0,sizeof(p));
memset(dp,0,sizeof(dp));
scanf("%d",&n);
for(i=0,j=0;i<n;i++,j+=2)
{
scanf("%d%d",&p[i].l,&p[i].r);
b[j]=p[i].l;
b[j+1]=p[i].r;
}
sort(b,b+j);
int ans=unique(b,b+j)-b;///离散化
for(i=0;i<ans;i++)
{
mp[b[i]]=i+1;
}
for(i=0;i<n;i++)
{
dp[mp[p[i].l]]++;
dp[mp[p[i].r]+1]--;
}
int maxx=0;
maxx=dp[1];
for(i=2;i<=ans;i++)
{
dp[i]+=dp[i-1];
maxx=max(maxx,dp[i]);
}
printf("%d\n",maxx);
}
return 0;
}