POJ 2007 (极角排序)

来源:互联网 发布:魅可mac什么档次 编辑:程序博客网 时间:2024/04/30 10:28

题目链接:http://poj.org/problem?id=2007


题解:极角排序

#include<iostream>#include<cmath>#include<complex>#include<algorithm>#define max(a,b) (a)>(b)?(a):(b)#define min(a,b) (a)<(b)?(a):(b)#define EPS 1e-8using namespace std;struct point {    double x,y;    };point convex[50];double cross(const point &p1, const point &p2, const point &q1, const point &q2){    return (q2.y - q1.y)*(p2.x - p1.x) - (q2.x - q1.x)*(p2.y - p1.y);    }//极角排序bool cmp(const point &a, const point &b){    point origin;    origin.x = origin.y = 0;    return cross(origin,b,origin,a) < 0;}int main(){    int cnt = 0;    while (scanf("%lf%lf",&convex[cnt].x,&convex[cnt].y) != EOF) {        ++cnt;    }    sort(convex+1,convex+cnt,cmp);    for (int i(0); i<cnt; ++i) {        cout<<"("<<convex[i].x<<","<<convex[i].y<<")"<<endl;        }    return 0;    }


0 0
原创粉丝点击