题目背景

此处省略1W字^ ^

题目描述

贝茜在牛的选美比赛中赢得了冠军”牛世界小姐”。因此,贝西会参观N(2 < = N < = 50000)个农场来传播善意。世界将被表示成一个二维平面,每个农场位于一对整数坐标(x,y),各有一个值范围在-10000…10000。没有两个农场共享相同的一对坐标。

尽管贝西沿直线前往下一个农场,但牧场之间的距离可能很大,所以她需要一个手提箱保证在每一段旅程中她有足够吃的食物。她想确定她可能需要旅行的最大可能距离,她要知道她必须带的手提箱的大小。帮助贝西计算农场的最大距离。

输入输出格式

输入格式:

第一行:一个整数n

第2~n+1行:xi yi 表示n个农场中第i个的坐标

输出格式:

一行:最远距离的[b]平方[/b]

输入输出样例

输入样例#1:

  1. 4
  2. 0 0
  3. 0 1
  4. 1 1
  5. 1 0
输出样例#1:

  1. 2

说明

NONE

 
 
本来想练习一下旋转卡壳,
但是n^2的暴力居然A了。,,。。
既然A了,。。。
那就不写旋转卡壳23333333
 
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cmath>
  5. #include<algorithm>
  6. #define vec point
  7. using namespace std;
  8. const double eps=1e-;
  9. const int MAXN=;
  10. int n;
  11. void read(int &n)
  12. {
  13. char c='+';int x=;bool flag=;
  14. while(c<''||c>''){c=getchar();if(c=='-')flag=;}
  15. while(c>=''&&c<=''){x=x*+(c-);c=getchar();}
  16. flag==?n=-x:n=x;
  17. }
  18. inline int dcmp(double x)
  19. {
  20. if(fabs(x)<eps) return ;
  21. else return x>?:-;
  22. }
  23. struct point
  24. {
  25. double x,y;
  26. inline point(double x=,double y=):x(x),y(y){};
  27. }p[MAXN],ch[MAXN];
  28. vec operator - (vec a,vec b) {return vec(a.x-b.x,a.y-b.y);}
  29. vec operator + (vec a,vec b) {return vec(a.x+b.x,a.y+b.y);}
  30. vec operator == (vec a,vec b){return (dcmp(a.x-b.x)==&&dcmp(a.y-b.y)==);}
  31. int comp(const point &a,const point &b)
  32. {
  33. if(a.x==b.x) return a.y<b.y;
  34. else return a.x<b.x;
  35. }
  36. int stack[MAXN];
  37. double cross(vec a,vec b){return a.x*b.y-a.y*b.x;}
  38. int convex_hull()
  39. {
  40. sort(p+,p+n+,comp);
  41. int top=;
  42. for(int i=;i<=n;i++)
  43. {
  44. while(top>&& dcmp(cross(ch[top-]-ch[top-], p[i]-ch[top-]))<=) top--;
  45. ch[top++]=p[i];
  46. }
  47. int tmp=top+;
  48. for(int i=n-;i>=;i--)
  49. {
  50. while(top+>tmp&& dcmp(cross(ch[top-]-ch[top-], p[i]-ch[top-]))<=) top--;
  51. ch[top++]=p[i];
  52. }
  53. if(n>) top--;
  54. return top;
  55. }
  56. int dis(point a,point b)
  57. {
  58. return ((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
  59. }
  60. int main()
  61. {
  62. //freopen("fc.in","r",stdin);
  63. //freopen("fc.out","w",stdout);
  64. read(n);
  65. //ios::sync_with_stdio(0);
  66. for(int i=;i<=n;i++)
  67. {
  68. double a,b;
  69. cin>>a>>b;
  70. p[i]=point(a,b);
  71. }
  72. int num=convex_hull();
  73. int ans=;
  74. for(int i=;i<=num;i++)
  75. for(int j=;j<=num;j++)
  76. ans=max(ans,(int) dis(ch[i],ch[j]));
  77.  
  78. printf("%d",ans);
  79. return ;
  80. }

P1452 Beauty Contes的更多相关文章

  1. P1452 Beauty Contes(旋转卡壳版)

    题目背景 此处省略1W字^ ^ 题目描述 贝茜在牛的选美比赛中赢得了冠军”牛世界小姐”.因此,贝西会参观N(2 < = N < = 50000)个农场来传播善意.世界将被表示成一个二维平面 ...

  2. 洛谷 P1452 Beauty Contest 解题报告

    P1452 Beauty Contest 题意 求平面\(n(\le 50000)\)个点的最远点对 收获了一堆计算几何的卡点.. 凸包如果不保留共线的点,在加入上凸壳时搞一个相对栈顶,以免把\(n\ ...

  3. [洛谷P1452]Beauty Contest

    题目大意:给你$n$个点,求出其中最远点的距离 题解:求出凸包,最远点一定都在凸包上,可以对每条边求出最远的点(可以双指针),然后求出和这条边的端点的距离,更新答案 卡点:最开始对每个点求出最远点,但 ...

  4. 洛谷 P1452 Beauty Contest

    题目背景 此处省略1W字^ ^ 题目描述 贝茜在牛的选美比赛中赢得了冠军”牛世界小姐”.因此,贝西会参观N(2 < = N < = 50000)个农场来传播善意.世界将被表示成一个二维平面 ...

  5. P1452 Beauty Contest 旋转卡壳

    \(\color{#0066ff}{题目描述}\) 贝茜在牛的选美比赛中赢得了冠军"牛世界小姐".因此,贝西会参观N(2 < = N < = 50000)个农场来传播善 ...

  6. P1452 Beauty Contest

    传送门 求凸包周长,用旋转卡壳,具体可见yyb大佬的博客 顺便一提这题暴力+随机化也能过 暴力代码 //minamoto #include<bits/stdc++.h> #define r ...

  7. 计算几何细节梳理&模板

    点击%XZY巨佬 向量的板子 #include<bits/stdc++.h> #define I inline using namespace std; typedef double DB ...

  8. 【洛谷 P1452】 Beauty Contest (二维凸包,旋转卡壳)

    题目链接 旋转卡壳模板题把. 有时间再补总结吧. #include <cstdio> #include <cmath> #include <algorithm> u ...

  9. luogu P1452 [USACO03FALL]Beauty Contest G /【模板】旋转卡壳

    LINK:旋转卡壳 如题 是一道模板题. 容易想到n^2暴力 当然也能随机化选点 (还真有人过了 考虑旋转卡壳 其实就是对于某个点来说找到其最远的点. 在找的过程中需要借助一下个点的帮助 利用当前点到 ...

随机推荐

  1. oracle刚開始学习的人经常使用操作100问

    oracle刚開始学习的人经常使用操作100问 1. Oracle安装完毕后的初始口令?   internal/oracle sys/change_on_install system/manager ...

  2. Compiler Warning (level 2) CS0436

    https://docs.microsoft.com/en-us/dotnet/csharp/misc/cs0436 // CS0436_a.cs // compile with: /target:l ...

  3. nyoj--84--阶乘的0(数学技巧)

    阶乘的0 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 计算n!的十进制表示最后有多少个0 输入 第一行输入一个整数N表示测试数据的组数(1<=N<=100 ...

  4. (转载) Android RecyclerView 使用完全解析 体验艺术般的控件

    Android RecyclerView 使用完全解析 体验艺术般的控件 标签: Recyclerviewpager瀑布流 2015-04-16 09:07 721474人阅读 评论(458) 收藏  ...

  5. (转载) 据说年薪30万的Android程序员必须知道的

    据说年薪30万的Android程序员必须知道的帖子 标签: android 2015-03-12 16:52 28705人阅读 评论(14) 收藏 举报 Android中国开发精英 目前包括: And ...

  6. HTML基础——网站图片显示页面

    1.图片标签 <img /> 属性: src:指的是图片显示的路径(位置) 绝对路径:D:\Pictures\Saved Pictures 相对路径: ①同一级:直接写文件名称或者./文件 ...

  7. FCC编程题之中级算法篇(中)

    介绍 接着上次的中级算法题 目录 1. Missing letters 2. Boo who 3. Sorted Union 4. Convert HTML Entities 5. Spinal Ta ...

  8. 转义JavaScript特殊字符

    JavaScriptUtils.javaScriptEscape("%admin' or '1=1") //转义JavaScript特殊字符

  9. [转载]PyCharm创建.py自动添加文件头注释

    转自:https://blog.csdn.net/qq_36482772/article/details/67218214 创建.py文件时 顺便自动添加作者.时间.文件名信息…… mac系统打开编辑 ...

  10. Python ftplib 模块关于 ftp的下载

    import ftplib import os import socket import sys HOST='192.168.216.193' DIRN='c:\\ftp\FTP.123' FILE= ...