P1452 Beauty Contest

题意

求平面\(n(\le 50000)\)个点的最远点对


收获了一堆计算几何的卡点..

凸包如果不保留共线的点,在加入上凸壳时搞一个相对栈顶,以免把\(n\)号点删走了

旋转卡壳和凸包都想一下更新的时候带不带等于号阿


Code:

#include <cstdio>
#include <algorithm>
using std::max;
const int N=5e4+10;
int s[N],tot,n,p;
struct Vector
{
int x,y;
bool friend operator <(Vector a,Vector b){return a.x==b.x?a.y<b.y:a.x<b.x;}
Vector friend operator -(Vector a,Vector b){return Vector{a.x-b.x,a.y-b.y};}
}bee[N];
int Cross(Vector a,Vector b){return a.x*b.y-a.y*b.x;}
int cal(int a,int b,int c){return Cross(bee[c]-bee[a],bee[c]-bee[b]);}
int Dis(int a,int b){return (bee[a].x-bee[b].x)*(bee[a].x-bee[b].x)+(bee[a].y-bee[b].y)*(bee[a].y-bee[b].y);}
void ins(int i)
{
while(tot>p&&Cross(bee[i]-bee[s[tot]],bee[s[tot]]-bee[s[tot-1]])>=0) --tot;
s[++tot]=i;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d%d",&bee[i].x,&bee[i].y);
std::sort(bee+1,bee+1+n);
int ans=Dis(1,n);p=1;
for(int i=1;i<=n;i++) ins(i);
p=tot;
for(int i=n-1;i;i--) ins(i);
for(int p=2,i=1;i<tot;i++)
{
while(cal(s[i],s[i+1],s[p])<cal(s[i],s[i+1],s[p+1])) p=p==tot-1?1:p+1;
ans=max(ans,max(Dis(s[i],s[p]),Dis(s[i+1],s[p])));
}
printf("%d\n",ans);
return 0;
}

2019.2.15

最新文章

  1. Sublime Text 3 杂记
  2. c#对数据库访问完应关闭连接
  3. 使用VS Code开发ASP.NET Core 应用程序
  4. UITextField限制中英文字数和光标定位以及第三方输入限制问题
  5. 设置svg图片大小
  6. 分享Kali Linux 2016.2第46周镜像文件
  7. Cocos2d-x优化中关于背景图片优化
  8. 如何调试libc++abi.dylib handler threw exception错误
  9. thinkphp 区分大小写的文件存在判断
  10. GPS功能:百度路书自定义【轨迹回放】
  11. 安装 SQL Server 2008 R2 的硬件和软件要求(转)
  12. ssh The authenticity of host 192.168.0.xxx can&#39;t be established
  13. scrapy代理的设置
  14. Ecplise插件安装方法
  15. 详解什么是平衡二叉树(AVL)(修订补充版)
  16. SpringBoot笔记十四:消息队列
  17. MariaDB:登陆报错:mysqladmin: connect to server at 'localhost' failed
  18. 大型网站系统与Java中间件实践读书笔记
  19. java15
  20. Filter查询

热门文章

  1. 干货分享:vue2.0做移动端开发用到的相关插件和经验总结(2)
  2. MVC 使用cshtml的一些基础知识-和相关整理
  3. ABP+AdminLTE+Bootstrap Table权限管理系统第九节--AdminLTE引入及模板页和布局和菜单
  4. Ceph分布式存储-原理介绍及简单部署
  5. Gerrit日常维护记录
  6. ml-模型评估与选择
  7. 关于singleton的几个实现
  8. 在XShell中使用sz和rz命令下载和上传文件
  9. css3 @media 实现响应式布局
  10. hive数据导入Sqoop工具