HDOJ:1051
#include <algorithm> #include <iostream> #include <cstdio> #define K 5001 using namespace std; struct st { int l; int w; bool t; }a[K]; bool cmp(st a,st b) { if(a.l==b.l) return a.w>b.w; else return a.l>b.l; } int main(void) { freopen("in.txt","r",stdin); int N; scanf("%d",&N); while(N--) { int n,i; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%d",&a[i].l,&a[i].w); sort(a,a+n,cmp); int l0,w0,s=0,sign=0,m=0; while(sign!=n) { for(i=m;i<n;i++) if(a[i].t==false) { l0=a[i].l; w0=a[i].w; a[i].t==true; s++; i++; sign++; m=i; break; } for(;i<n;i++) if(a[i].t==false&&a[i].w<=w0) { l0=a[i].l; w0=a[i].w; a[i].t=true; sign++; } } printf("%d\n",s); for(i=0;i<n;i++) a[i].t=false; } fclose(stdin); return 0; }