zoukankan      html  css  js  c++  java
  • poj 1696

    不错的一题,需要极角排序,看了别人的代码做的。。。。。。计算几何啊~~~

    View Code
     1 #include <cstdio>
     2 #include <cstring>
     3 #include <cmath>
     4 #include <algorithm>
     5 
     6 const double er = 1e-8;
     7 struct point
     8 {
     9     int index;
    10     int x,y;
    11 }p[100];
    12 int n;
    13 int res;
    14 
    15 int dis(point a,point b)
    16 {
    17     return sqrt(1.0*(a.x - b.x) * (a.x - b.x) + 1.0*(a.y - b.y)*(a.y - b.y));
    18 }
    19 
    20 double outer_product(point a,point b,point c)
    21 {
    22     return (b.x - a.x) * (c.y - a.y) - (b.y - a.y)*(c.x-a.x);
    23 }
    24 
    25 bool cmp(point a,point b)
    26 {
    27     double temp = outer_product(p[res - 1],a,b);
    28     if(temp > er) return true;
    29     temp = temp > 0?temp:(-temp);
    30     if(temp < er&&dis(a,p[res - 1]) < dis(b,p[res -1]))
    31         return true;
    32     return false;
    33 }
    34 
    35 int main()
    36 {
    37     int cas;
    38     scanf("%d",&cas);
    39     while(cas --)
    40     {
    41         scanf("%d",&n);
    42         for(int i = 0;i < n;i ++)
    43         {
    44             scanf("%d%d%d",&p[i].index,&p[i].x,&p[i].y);
    45             if(p[i].y < p[0].y) std::swap(p[i],p[0]);
    46             if(p[i].y == p[0].y)
    47             {
    48                 if(p[i].x <p[0].x)
    49                     std::swap(p[i],p[0]);
    50             }
    51         }
    52         printf("%d %d",n,p[0].index);
    53 
    54         for(res = 1;res < n;res ++)
    55         {
    56             std::sort(p+res,p+n,cmp);
    57             printf(" %d",p[res].index);
    58         }
    59         printf("\n");
    60     }
    61 
    62     return 0;
    63 }
  • 相关阅读:
    1113. Integer Set Partition (25)
    1110. Complete Binary Tree (25)
    1109. Group Photo (25)
    Bender Problem
    格子中输出
    牌型种数
    移动距离
    QQ帐户的申请与登陆(25 分)
    词频统计
    基于HTTP的直播点播HLS
  • 原文地址:https://www.cnblogs.com/Shirlies/p/2443518.html
Copyright © 2011-2022 走看看