给出N个二维点,要求所有不受控制点的个数,对于
这个题目还算不错,,只允许
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
struct Node{
  int x;
  int y;
}nodes[5*10000+5];
bool cmp_x_y(const Node &n1, const Node &n2){
     if(n1.x<n2.x) return true;
     else if(n1.x == n2.x && n1.y<n2.y) return true;
     return false;
}
int main()
{
    int N;
    while(1)
    {
        scanf("%d",&N);
        if(!N) break;
        for(int i = 0; i<N; i++){
              scanf("%d%d",&nodes[i].x,&nodes[i].y);
        }
        sort(nodes,nodes+N,cmp_x_y);
        int k = 0;
        for(int i=0; i<N; i++)
        {
            if(i<N-1 && nodes[i].x == nodes[i+1].x)
                 continue;
            else nodes[k++] = nodes[i];
        }
        int ans = 1;
        int maxy = nodes[k-1].y;
        for(int i = k-2; i>=0; i--){
            if(nodes[i].y>maxy){
                ans++;
                maxy = nodes[i].y;
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/neu_chenguangq/article/details/48113229