zoukankan      html  css  js  c++  java
  • HDU 6300.Triangle Partition-三角形-水题 (2018 Multi-University Training Contest 1 1003)

    6300.Triangle Partition

    这个题就是输出组成三角形的点的下标。

    因为任意三点不共线,所以任意三点就可以组成三角形,直接排个序然后输出就可以了。

    讲道理,没看懂官方题解说的啥。。。

    官方题解:

    求个凸包,然后选择凸包一条边AB,然后找个和AB夹角最小的点C,把ABC当做一个三角形删掉即可。这样做个n次,显然这样求出来的三角形们是合法的。

    代码:

     1 //1003-6300-三角形水题
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<cstring>
     5 #include<algorithm>
     6 #include<cmath>
     7 #include<cassert>
     8 using namespace std;
     9 typedef long long ll;
    10 const int maxn=1e5+10;
    11 
    12 struct node{
    13     int x,y,id;
    14 
    15     bool operator<(const node &a) const{
    16         if(x==a.x) return y<a.y;
    17         return x<a.x;
    18     }
    19 
    20 }a[maxn];
    21 
    22 int main()
    23 {
    24     int t;
    25     scanf("%d",&t);
    26     while(t--){
    27         int n;
    28         scanf("%d",&n);
    29         n=n*3;
    30         for(int i=1;i<=n;i++){
    31             scanf("%d%d",&a[i].x,&a[i].y);
    32             a[i].id=i;
    33         }
    34         sort(a+1,a+1+n);
    35         for(int i=1;i<=n;i++){
    36             cout<<a[i].id;
    37             if(i%3!=0)cout<<" ";
    38             else cout<<endl;
    39         }
    40     }
    41 }

    溜了。

  • 相关阅读:
    VS2010安装笔记
    Blend4中文版中截取图片的方法
    改变窗口的位置 (转载)
    窗口的位置
    windows消息大全
    WM_MOUSELEAVE和WM_MOUSEHOVER使用
    setwindowpos
    无注册表的COM调用
    WM_CLOSE WM_QUIT WM_DESTROY 三者的区别
    WM_MOUSEWHEEL消息
  • 原文地址:https://www.cnblogs.com/ZERO-/p/9431404.html
Copyright © 2011-2022 走看看