【凸包模板】

struct node
{
    int x,y;
}p[N],a[N];
int n,tot;

double dis(node a,node b)
{
    return hypot(a.x-b.x,a.y-b.y);
}

int multi(node p0,node p1,node p2)
{
    return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
}

int cmp(node a,node b)
{
    int x=multi(a,b,p[0]);
    if(x>0||(x==0)&&dis(a,p[0])1&&multi(p[i],a[tot-1],a[tot-2])>=0) tot--;
        a[tot++]=p[i];
    }
}

int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        for(int i=0;i

你可能感兴趣的:(凸包)