#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxn = 5005;
int mark[maxn];
struct node
{
int l, w;
} p[maxn];
bool cmp(node a, node b)
{
if(a.l != b.l) return a.l < b.l;
return a.w < b.w;
}
int main()
{
int t;
scanf("%d", &t);
while(t--)
{
int n;
scanf("%d", &n);
for(int i = 0; i < n; i++)
scanf("%d%d", &p[i].l, &p[i].w);
sort(p, p+n, cmp);
memset(mark, 0, sizeof(mark));
int g;
int sum = 0;
for(int i = 0; i < n; i++)
{
if(mark[i]) continue;
sum++;
g = i;
for(int j = 0; j < n; j++)
{
if(mark[j]) continue;
if(p[g].l<=p[j].l && p[g].w<=p[j].w)
{
mark[j] = 1;
g = j;
}
}
}
printf("%d\n", sum);
}
}
hdu1051
最新推荐文章于 2018-12-24 15:13:42 发布