poj 1065(注意sort函数的使用)


#include
#include
#include
using namespace std;
#define maxn 5005
typedef struct node{
    int x,y;
}Point;
//int cmp(Point p1,Point p2){
//    if(p1.x<=p2.x&&p1.y<=p2.y)return true;
//    else if(p1.x>=p2.x&&p1.y>=p2.y)return false;
//}
Point point[maxn]; 
int cmp(Point p1,Point p2){
    if(p1.xreturn true;
    return false;
}
int main(){
    int t,n,sum,i,j,tmp_x,tmp_y;
    bool flag[maxn];
    scanf("%d",&t);
    while(t--){
        scanf("%d",&n);
        for(i=0;i){
            scanf("%d%d",&point[i].x,&point[i].y);
        }
        sort(point,point+n,cmp);
        memset(flag,false,sizeof flag);
        sum = 0;
        for(j=0;j){
            i=0;
            while(i;
            if(i==n)break;
            tmp_x = point[i].x;
            tmp_y = point[i].y;
            for(;i){
                if(!flag[i]&&point[i].x>=tmp_x&&point[i].y>=tmp_y){
                    flag[i] = true;
                    tmp_x = point[i].x;
                    tmp_y = point[i].y;
                }
            }
            sum++; 
        }
        cout<endl;
    }
    return 0;
}
poj