#include<iostream>
using namespace std;
typedef struct fun
{
int x,y;
}rr;
fun a[5005];
bool vis[5005];
int cmp(const void *a,const void *b)
{
fun *c=(fun *)a;
fun *d=(fun *)b;
if(c->x==d->x)
return c->y-d->y;
else
return c->x-d->x;
}
int main()
{
int T,n,i,j,sum,sign;
cin>>T;
while(T--)
{
cin>>n;
for(i=0; i<n; i++)
{
cin>>a[i].x>>a[i].y;
vis[i]=false;
}
qsort(a,n,sizeof(fun),cmp);
sign=0;sum=0;
int x,y;
while(sign<n)
{
sum++;
x=0;y=0;
for(i=0; i<n; i++)
{
if(a[i].x>=x && a[i].y>=y && vis[i]==false)
{
sign++;
vis[i]=true;
x=a[i].x;
y=a[i].y;
}
}
}
cout<<sum<<endl;
}
return 0;
}poj 1065简单的贪心
最新推荐文章于 2021-05-09 21:49:21 发布
本文展示了一个使用C++实现的排序与选择算法案例。该程序通过定义结构体并使用qsort函数进行排序,旨在从一系列坐标中选择尽可能多的不相交坐标组。通过对输入数据的处理和特定条件下的选择逻辑,展示了算法的设计思想。
1万+

被折叠的 条评论
为什么被折叠?



