C - Triangle Partition HDU - 6300-几何+思维

  • C - Triangle Partition

  •  HDU - 6300
  • 题意:给3*n个点组成n个三角形不相邻,并且没有三点共线,直接按照x大小排序相邻选择三个即可
  • #include<bits/stdc++.h>
    using namespace std;
    #define maxn 10050
    struct node
    {
        int x,y,id;
    } point[maxn];
    bool cmp(node a,node b)
    {
        if(a.x==b.x)return a.y<b.y;
        return a.x<b.x;
    }
    int t,n;
    int main()
    {
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d",&n);
            for(int i=1; i<=3*n; i++)
            {
                scanf("%d%d",&point[i].x,&point[i].y);
                point[i].id=i;
            }
            sort(point+1,point+3*n+1,cmp);
            for(int i=1;i<=3*n;i+=3)
            printf("%d %d %d\n",point[i].id,point[i+1].id,point[i+2].id);
        }
        return 0;
    }
    

猜你喜欢

转载自blog.csdn.net/BePosit/article/details/83957612