zoukankan      html  css  js  c++  java
  • Beauty Contest POJ

    Beauty Contest

    POJ - 2187
    题意:问凸包的直径.
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 using namespace std;
     6 const int inf=1e9+10;
     7 const int maxn=50010;
     8 
     9 struct Node{
    10     int x,y;
    11     bool operator <(const Node &a)const{
    12         return x<a.x||(x==a.x&&y<a.y);
    13     }
    14     Node operator -(Node &a){
    15         return Node{x-a.x,y-a.y};
    16     }
    17 }p[maxn],ch[maxn];
    18 int cross(Node a,Node b){
    19     return a.x*b.y-a.y*b.x;
    20 }
    21 double getlen(Node a){
    22     return a.x*a.x+a.y*a.y;
    23 }
    24 
    25 int ConvexHull(int n){
    26     sort(p,p+n);
    27     int m=0;
    28     for(int i=0;i<n;i++){
    29         while(m>1&&cross(ch[m-1]-ch[m-2],p[i]-ch[m-2])<=0) m--;
    30         ch[m++]=p[i];
    31     }
    32     int k=m;
    33     for(int i=n-2;i>=0;i--){
    34         while(m>k&&cross(ch[m-1]-ch[m-2],p[i]-ch[m-2])<=0) m--;
    35         ch[m++]=p[i];
    36     }
    37     if(n>1) m--;
    38     return m;
    39 }
    40 
    41 //RotatrCalipers
    42 double RC(int n){
    43     double ans=-inf;
    44     ch[n]=ch[0];
    45     int q=1;
    46     for(int i=0;i<n;i++){
    47         while(cross(ch[i+1]-ch[i],ch[q]-ch[i])<cross(ch[i+1]-ch[i],ch[q+1]-ch[i])) q=(q+1)%n;
    48         ans=max(ans,max(getlen(ch[q]-ch[i]),getlen(ch[q+1]-ch[i+1])));
    49     }
    50     return ans;
    51 }
    52 
    53 int main(){
    54     int n;
    55    // freopen("in.txt","r",stdin);
    56     while(scanf("%d",&n)!=EOF){
    57         for(int i=0;i<n;i++) scanf("%d%d",&p[i].x,&p[i].y);
    58         int m=ConvexHull(n);
    59         double ans=RC(m);
    60         printf("%.0f
    ",ans);
    61     }
    62 }
    View Code
  • 相关阅读:
    函数part1 初始函数
    文件操作 文件修改的两种方式
    文件操作part3 文件内指针的移动
    文件操作part2
    day08作业
    文件操作part1
    字符编码
    ORA-15124 数据库启动阶段报错
    将数据库从普通文件系统迁移到ASM中
    在ASM中移动数据文件
  • 原文地址:https://www.cnblogs.com/yijiull/p/7492554.html
Copyright © 2011-2022 走看看