本文共 1002 字,大约阅读时间需要 3 分钟。
裸的极角排序,但是要把0,0放在第一个(话说这题题目真是巨长,废话也多。。。)
#include#include #include #include #include #include #include #include #include #include #include #include #include #define pi acos(-1.0)#define ll long long#define mod 1000000007#define ls l,m,rt<<1#define rs m+1,r,rt<<1|1#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;const double g=10.0,eps=1e-9;const int N=100+10,maxn=500+100,inf=0x3f3f3f;struct point{ double x,y;}p[N];double dis(point p1,point p2){ return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));}double dir(point p1,point p2,point p3){ return (p3.x-p1.x)*(p2.y-p1.y)-(p3.y-p1.y)*(p2.x-p1.x);}bool comp(point p1,point p2){ double te=dir(p[0],p1,p2); if(te<0)return 1; if(te==0&&dis(p[0],p1) >p[cnt].x>>p[cnt].y){ //if(p[cnt].x==-1&&p[cnt].y==-1)break; cnt++; } int pos; for(int i=0;i
转载于:https://www.cnblogs.com/acjiumeng/p/7191653.html