zoukankan      html  css  js  c++  java
  • 【HDOJ6300】Triangle Partition(极角排序)

    题意:给定3n个点,保证没有三点共线,要求找到一组点的分组方案使得它们组成的三角形之间互不相交。

    n<=1e3

    思路:以y为第一关键字,x为第二关键字,按x递减,y递增排序

     1 #include<cstdio>
     2 #include<cstdlib>
     3 #include<algorithm>
     4 using namespace std;
     5 
     6 struct arr
     7 {
     8     int x,y,z;
     9 }a[3100];
    10 
    11 int cas,n;
    12 
    13 bool cmp(arr a,arr b)
    14 {
    15    if(a.x==b.x) return a.y>b.y;
    16     else return a.x<b.x;
    17 }
    18 
    19 int main()
    20 {
    21    freopen("1003.in","r",stdin);
    22    freopen("1003.out","w",stdout);
    23    scanf("%d",&cas);
    24    while(cas--)
    25    {
    26       scanf("%d",&n);
    27       int m=n*3;
    28       for(int i=1;i<=m;i++)
    29       {
    30         scanf("%d%d",&a[i].x,&a[i].y);
    31         a[i].z=i;
    32       }
    33       sort(a+1,a+m+1,cmp);
    34       for(int i=1;i<=m;i++)
    35       {
    36         printf("%d",a[i].z);
    37         if(!i%3) printf("
    ");
    38          else printf(" ");
    39       }
    40    }
    41    return 0;
    42 }
    43     
  • 相关阅读:
    php设计模式 — 简单工厂模式(静态工厂方法模式)
    Vue-Router
    各种选项卡
    jq动画
    如何使用swiper写轮播
    Gulp代码压缩
    闭包
    jquery.validation校验
    grunt-js文件压缩
    CSS
  • 原文地址:https://www.cnblogs.com/myx12345/p/9378292.html
Copyright © 2011-2022 走看看