题目链接:
http://poj.org/problem?id=1065
http://acm.hdu.edu.cn/showproblem.php?pid=1051
Wooden Sticks

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
struct S
{
int l;
int w;
}num[5010];

int cmp(struct S a ,struct S b)
{
if(a.l!=b.l)
return a.l<b.l;
return a.w<b.w;
}
int main()
{
int K,N,i,j,sum,index;
int T[5010];
scanf("%d",&K);
while(K--)
{
scanf("%d",&N);
memset(T,0,sizeof(T));
for(i=0;i<N;i++)
scanf("%d%d",&num[i].l,&num[i].w);
sort(num,num+N,cmp);
sum=0;
for(i=0;i<N;i++)
{
if(!T[i])
{
index=i;
T[i]=1;
for(j=i+1;j<N;j++)
{
if(num[j].l>=num[index].l&&num[j].w>=num[index].w&&!T[j])
{
index=j;
T[j]=1;
}
}
sum++;
}
}
printf("%d\n",sum);
}
return 0;
}


posted on 2011-11-10 11:41  pcoda  阅读(247)  评论(0编辑  收藏  举报