思路:

求个凸包

旋转卡壳一下

就求出来最远点对了

注意共线情况

也就是说   凸包如果有一堆点共线保留端点即可

//By SiriusRen
#include <cmath>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N=100050;
int n,k,top,now=2,ans;
struct P{int x,y;P(){}P(int X,int Y){x=X,y=Y;}}p[N],tb[N];
bool cmp(P a,P b){return a.x==b.x?a.y<b.y:a.x<b.x;}
int operator*(P a,P b){return a.x*b.y-a.y*b.x;}
P operator-(P a,P b){return P(a.x-b.x,a.y-b.y);}
int cross(P a,P b,P c){return (a-c)*(b-c);}
int dis(P a){return a.x*a.x+a.y*a.y;}
int main(){scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d%d",&p[i].x,&p[i].y);sort(p+1,p+1+n,cmp);for(int i=1;i<=n;i++){while(top>1&&cross(tb[top],p[i],tb[top-1])<=0)top--;tb[++top]=p[i];}k=top;for(int i=n-1;i;i--){while(top>k&&cross(tb[top],p[i],tb[top-1])<=0)top--;tb[++top]=p[i];}for(int i=1;i<top;i++){while((tb[i+1]-tb[i])*(tb[now]-tb[i])<(tb[i+1]-tb[i])*(tb[now+1]-tb[i])){now++;if(now==top)now=1;}ans=max(ans,dis(tb[i]-tb[now]));}printf("%d\n",ans);
}

转载于:https://www.cnblogs.com/SiriusRen/p/9390484.html

POJ 2187 凸包+旋转卡壳相关推荐

  1. poj 2187(旋转卡壳)

    传送门 模板题,求凸包,用旋转卡壳求出最远点对. 因为把int弄成double,WA了好几次,差点对idy大神给的模板失去信心...不过事实证明idy的写法没问题,orz! #include<c ...

  2. POJ - 2187 Beauty Contest (求距离最远点对-凸包+旋转卡壳/枚举 (旋转卡壳学习))

    链接:https://vjudge.net/problem/POJ-2187 题意:求求距离最远点对. 思路:肯定为凸包上的点,可枚举,也可根据凸包性质旋转卡壳求对踵点. 参考博客: https:// ...

  3. hdu2202 凸包+旋转卡壳

    点击打开hdu2202 思路:最大三角形面积,那么肯定这三个点在最外围,所以先求凸包,然后用旋转卡壳求出那三个点求出面积最大. #include <iostream> #include & ...

  4. poj 2187 凸包or旋转qia壳法

    题意: 给n(50000)个点,求这些点与点之间距离最大的距离. 解析: 先求凸包然后暴力. 或者旋转卡壳大法. 代码: #include <iostream> #include < ...

  5. 【BZOJ1185】【HNOI2007】最小矩形覆盖(凸包+旋转卡壳)

    传送门 题意:求最小矩阵覆盖 有这样一个结论:矩阵一定有一条边在凸包上(不会证) 那可以枚举每条边 同时旋转卡壳 只是这时不只维护一个对踵点对,同时在左右侧再维护一个最远点 可以发现左右最远点一定是和 ...

  6. Beauty Contest(凸包 + 旋转卡壳(模板))

    Beauty Contest 直接跑一个凸包,然后跑一跑旋转卡壳,求最大值就行了. /*Author : lifehappy */ #include <cstdio> #include & ...

  7. 凸包旋转卡壳(andrew)

    题目链接 如图计算上凸包时判断C1,C2,C3C_1,C_2,C_3C1​,C2​,C3​显然C3C_3C3​是经过A,BA,BA,B的上凸包 可以发现只需要通过A,BA,BA,B即可判断,通过观察可 ...

  8. bzoj1069: [SCOI2007]最大土地面积 凸包+旋转卡壳求最大四边形面积

    在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成的多边形面积最大. 题解:先求出凸包,O(n)枚举旋转卡壳,O(n)枚举另一个点,求最大四边形面积 /* ...

  9. Gym - 102460L Largest Quadrilateral(几何-凸包+旋转卡壳求最大的四边形面积)

    题目链接:点击查看 题目大意:在笛卡尔坐标系上给出 n 个点,要求选出四个点,使得组成的四边形面积最大,求出这个最大的面积,注意此处组成的四边形不是严格意义上的四边形,只需要选四个点就行 题目分析:首 ...

最新文章

  1. spring Ioc本质
  2. elasticsearch virtual memory虚拟内存配置“max virtual memory areas vm.max_map_count [65530] is too low, inc
  3. Linux命令关机/重启和Windows系统dos命令关机/重启
  4. php原生数据库分页
  5. 备份数据库的expdp语句_Oracle数据库备份恢复Data Pump Expdp/Impdp参数详解与案例介绍...
  6. textarea 在 Chrome Safari FireFox 浏览器中禁用拖动和固定大小
  7. 进阶之路:深入解读 Java 堆外内存 | 凌云时刻
  8. Python 符号运算
  9. nvme固态硬盘开机慢_固态硬盘速度慢?三步教你开启SSD全速模式!
  10. 给你一个完整的社群鸭介绍
  11. 动词ing形式的5种用法_动词ing形式的5种用法
  12. 小小白的Android入门之计算器学习
  13. 网易云课堂吴恩达Andrew Ng深度学习笔记(二)
  14. [机缘参悟-66]:怎样才能让别人愿意帮你:利益共享法则、“大道”、“人性”
  15. Spring注解解析及工作原理、自定义注解
  16. Protobuf3 google protobuf
  17. windows jdk1.7安装
  18. 群晖NAS教程(二十)、利用Docker安装zdir搭建个人云盘
  19. 各种进制间的轻松转换(c#)
  20. 电大本科计算机应用基础课程考核,2016年度春中央电大本科计算机应用基础学习知识网考操作技巧题及其规范标准答案.doc...

热门文章

  1. el表达式动态取值中括号内两点_中考热点:旧瓶新酒,解题新策略分析之玩转动态型热点题型...
  2. PX4 - position_estimator_inav
  3. 机器学习物语(3):回归问题
  4. ARM Cortex-M3中断跳转过程
  5. zzuli 2269:minval
  6. strcpy和memcpy的区别?
  7. 记录 之 numpy扩充某一维度,并重复填充
  8. Python报错TypeError: ‘User‘ object is not iterable
  9. 客户信息管理系统——Java
  10. c++-内存管理-G4.9