#include<stdio.h> #include<stdlib.h> #include<math.h> #include<iostream> #include<string.h> #include<algorithm> #include<vector> using namespace std; #define N 1100000 struct node { int x,y; }a[N]; int f[N],p[N]; int main() { int T,n,i; scanf("%d",&T); while(T--) { int k=0; memset(a,0,sizeof(a)); memset(f,0,sizeof(f)); memset(p,0,sizeof(p)); scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d %d",&a[i].x,&a[i].y); p[k++]=a[i].x; p[k++]=a[i].y; } sort(p,p+k); int len=unique(p,p+k)-p; int Max=0; for(i=0;i<n;i++) { int u=lower_bound(p,p+len,a[i].x)-p; int v=lower_bound(p,p+len,a[i].y)-p; f[u]++; f[v+1]--; Max=max(Max,v+1); } int ans=0,b=0; for(i=0;i<=Max;i++) { ans+=f[i]; b=max(b,ans); } printf("%d\n",b); } return 0; }
原文:http://www.cnblogs.com/linliu/p/4975356.html