POJ - 2187 Beauty Contest(最远点对)

http://poj.org/problem?id=2187

题意

给n个坐标,求最远点对的距离平方值。

分析

模板题,旋转卡壳求求两点间距离平方的最大值。

#include<iostream>
#include<cmath>
#include<cstring>
#include<queue>
#include<vector>
#include<cstdio>
#include<algorithm>
#include<map>
#include<set>
#define rep(i,e) for(int i=0;i<(e);i++)
#define rep1(i,e) for(int i=1;i<=(e);i++)
#define repx(i,x,e) for(int i=(x);i<=(e);i++)
#define X first
#define Y second
#define PB push_back
#define MP make_pair
#define mset(var,val) memset(var,val,sizeof(var))
#define scd(a) scanf("%d",&a)
#define scdd(a,b) scanf("%d%d",&a,&b)
#define scddd(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define pd(a) printf("%d\n",a)
#define scl(a) scanf("%lld",&a)
#define scll(a,b) scanf("%lld%lld",&a,&b)
#define sclll(a,b,c) scanf("%lld%lld%lld",&a,&b,&c)
#define IOS ios::sync_with_stdio(false);cin.tie(0)
#define lc idx<<1
#define rc idx<<1|1
#define rson mid+1,r,rc
#define lson l,mid,lc
using namespace std;
typedef long long ll;
template <class T>
void test(T a) {cout<<a<<endl;
}
template <class T,class T2>
void test(T a,T2 b) {cout<<a<<" "<<b<<endl;
}
template <class T,class T2,class T3>
void test(T a,T2 b,T3 c) {cout<<a<<" "<<b<<" "<<c<<endl;
}
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3fll;
const ll mod = 1e9+7;
int T;
void testcase() {printf("Case %d: ",++T);
}
const int MAXN = 50010;
const int MAXM = 30;
const double PI = acos(-1.0);
const double eps = 1e-7;struct Point{int x,y;Point(int _x=0,int _y=0){x=_x,y=_y;}Point operator -(const Point &b)const{return Point(x-b.x,y-b.y);}int operator ^(const Point &b)const{return x*b.y-y*b.x;}int operator *(const Point &b)const{return x*b.x+y*b.y;}void input(){scanf("%d%d",&x,&y);}
};
int dis2(Point a,Point b){return (a-b)*(a-b);
}
Point List[MAXN];
int Stack[MAXN],top;
bool _cmp(Point p1,Point p2){int tmp=(p1-List[0])^(p2-List[0]);if(tmp>0) return true;else if(tmp==0&&dis2(p1,List[0])<=dis2(p2,List[0])) return true;else return false;
}
void Graham(int n){Point p0;int k=0;p0=List[0];for(int i=1;i<n;i++){if(p0.y>List[i].y||(p0.y==List[i].y&&p0.x>List[i].x)){p0=List[i];k=i;}}swap(List[k],List[0]);sort(List+1,List+n,_cmp);if(n==1){top=1;Stack[0]=0;return;}if(n==2){top=2;Stack[0]=0;Stack[1]=1;return;}Stack[0]=0;Stack[1]=1;top=2;for(int i=2;i<n;i++){while(top>1&&((List[Stack[top-1]]-List[Stack[top-2]])^(List[i]-List[Stack[top-2]]))<=0)top--;Stack[top++]=i;}return;
}
int rotating_calipers(Point p[],int n){int ans=0;Point v;int cur=1;for(int i=0;i<n;i++){v=p[i]-p[(i+1)%n];while((v^(p[(cur+1)%n]-p[cur]))<0)cur=(cur+1)%n;ans=max(ans,max(dis2(p[i],p[cur]),dis2(p[(i+1)%n],p[(cur+1)%n])));}return ans;
}
Point p[MAXN];
int main() {
#ifdef LOCALfreopen("data.in","r",stdin);
#endif // LOCALint n;while(~scanf("%d",&n)){for(int i=0;i<n;i++) List[i].input();Graham(n);for(int i=0;i<top;i++) p[i]=List[Stack[i]];printf("%d\n",rotating_calipers(p,top));}return 0;
}

 

转载于:https://www.cnblogs.com/fht-litost/p/9350036.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kong入门学习实践(2)实验环境搭建

【API网关】| 总结/Edison Zhou最近在学习Kong网关&#xff0c;因此根据老习惯&#xff0c;我会将我的学习过程记录下来&#xff0c;一来体系化整理&#xff0c;二来作为笔记供将来翻看。由于我司会直接使用Kong企业版&#xff0c;学习过程中我会使用Kong开源版。本篇&#xff…

Mysql-索引的基础和类型

一、 索引的基础 索引类似于书籍的目录&#xff0c;要想找到一本书的某个特定主题&#xff0c;需要先查找书的目录&#xff0c;定位对应的页码。 存储引擎使用类似的方式进行数据查询&#xff0c;先去索引当中找到对应的值&#xff0c;然后根据匹配的索引找到对应的数据行 二…

ligerUI的列头合并代码片段

//列头合并 function onAfterShowData(data){//显示数据前触发此事件 console.log(123); var k 0; var tr $(.l-grid-body.l-grid-body1).find(table tr);//找到被冻结的列&#xff08;frozen&#xff09;,利用find方法找到所有的行 $.each($(tr)…

我的未来计算机作文,我的未来作文(精选4篇)

我的未来作文(精选4篇)在平平淡淡的日常中&#xff0c;大家总免不了要接触或使用作文吧&#xff0c;作文根据体裁的不同可以分为记叙文、说明文、应用文、议论文。怎么写作文才能避免踩雷呢&#xff1f;以下是小编收集整理的我的未来作文&#xff0c;仅供参考&#xff0c;大家一…

RDS for MySQL Mysqldump常见问题及处理

2019独角兽企业重金招聘Python工程师标准>>> 摘要&#xff1a; RDS for MySQL Mysqldump 常见问题和处理 GTID 特性相关 避免表级锁等待 设置导出字符集 其他导出时需要注意的选项 举例 RDS for MySQL 不支持的选项 RDS for MySQL 逻辑备份 1. GTID 特性相关 MySQ…

AI求解PDE

一、波动方程的PINN解法: Guo Y, Cao X, Liu B, et al. Solving partial differential equations using deep learning and physical constraints[J]. Applied Sciences, 2020, 10(17): 5917. 二、二维的Navier–Stokes方程组的PINN解法 矢量形式的不可压缩Navier-Stokes方程…

使用CADisplayLink实现UILabel动画特效

在开发时&#xff0c;我们有时候会遇到需要定时对UIView进行重绘的需求&#xff0c;进而让view产生不同的动画效果。 本文项目 效果图 初探 CADisplayLink 定时对View进行定时重绘可能会第一时间想到使用NSTimer&#xff0c;但是这样的动画实现起来是不流畅的&#xff0c;因为在…

《ASP.NET Core 6框架揭秘》实例演示[27]:ASP.NET Core 6 Minimal API的模拟实现

Minimal API仅仅是在基于IHost/IHostBuilder的服务承载系统上作了小小的封装而已&#xff0c;它利用WebApplication和WebApplicationBuilder这两个类型提供了更加简洁的API&#xff0c;同时提供了与现有API的兼容。[本文节选《ASP.NET Core 6框架揭秘》第17章]一、基础模型二、…

Mysql的关联查询语句

一 内连接( inner join&#xff09; 1、多表中同时符合某种条件的数据记录的集合 (取两表公共部分) 2、inner join 可以缩写成 join 例如: select * from A,B WHERE A.idB.id 或者 select * from A inner join B on A.idB.id 内连接分为三类:{ &#xff08;1&#xff0…

高性能Server---Reactor模型

无处不在的C/S架构 在这个充斥着云的时代,我们使用的软件可以说99%都是C/S架构的&#xff01; 你发邮件用的Outlook,Foxmail等你看视频用的优酷&#xff0c;土豆等你写文档用的Office365,googleDoc&#xff0c;Evernote等你浏览网页用的IE,Chrome等(B/S是特殊的C/S)……C/S架构…

计算机控制系统的试题,计算机控制系统练习题(1)

21. 给出多通道复用一个D/A转换器的原理示意图。 答&#xff1a;22. 什么是信号重构&#xff1f;答&#xff1a;把离散信号变为连续信号的过程&#xff0c;称为信号重构&#xff0c;它是采样的逆过程。23. 写出零阶保持器的传递函数&#xff0c;引入零阶保持器对系统开环传递函…

springmvc_3(将数据放入map中)

jsp页面 结果 转载于:https://www.cnblogs.com/mohehpc/p/6491376.html

怎样用原生js配合css的transition写个无缝滚动

之所以想要写原生js配合css转换的无缝滚动&#xff0c;是因为之前在简书上看到一哥们写的一篇文章&#xff0c;说是在网上找了一堆js配合css transition属性写的轮播插件&#xff0c;可惜没有无缝的效果&#xff0c;结果他用原生js重写了一个可以无缝滚动的。好吧&#xff0c;我…

聊聊策略模式

1、简介策略模式就是把各个平等的具体实现进行抽象、封装成为独立的算法类&#xff0c;然后通过上下文和具体的算法类来进行交互。各个策略算法都是平等的&#xff0c;地位是一样的&#xff0c;正是由于各个算法的平等性&#xff0c;所以它们才是可以相互替换的。虽然我们可以动…

小学计算机课每周几节,小学信息技术课时多少

满意答案小学信息技术课程标准一、课程任务和教学目标中小学信息技术课程的主要任务是&#xff1a;培养学生对信息技术的兴趣和意识&#xff0c;让学生了解和掌握信息技术基本知识和技能&#xff0c;了解信息技术的发展及其应用对人类日常生活和科学技术的深刻影响。通过信息技…

张旭升20162329 2006-2007-2 《Java程序设计》第一周学习总结

20162329 2006-2007-2 《Java程序设计》第一周学习总结 教材学习内容总结 通过打书上的代码熟悉了Java编程的基本过程 教材学习中的问题和解决过程 1.因为我的虚拟机不可用所以我在Windows中安装了bash和git&#xff0c;但是由于Windows下bash中没有中文而且我英语又不是很好所…

《图解 HTTP》读书笔记(未完待续)

ARP 协议&#xff08;Address Resolution Protocol&#xff09;一种以解析地址的协议&#xff0c;根据通信双方的 IP 地址就可以查出对应的 MAC 地址。MAC&#xff08; Media Access Control Address&#xff09;地址是指网卡所属的固定的地址MIME&#xff0c;多部分对象集合&a…

SQL查询的安全方案

1.使用预处理语句防sql注入 2.写入数据库的数据要进行特殊字符转义 3.错误信息不返回给用户,记录到日志 4.定期做数据备份 5.不给查询用户root权限,合理分配权限 6.关闭远程访问数据库权限 7.修改root口令,不使用默认口令,使用较复杂口令 8.删除多余的用户 9.改变root用户的名称…

.NET 实现启动时重定向程序运行路径及 Windows 服务运行模式部署

日常工作中有时候会遇到需要将程序直接在服务器上运行&#xff0c;而不依赖于 IIS 托管的情况&#xff0c;直接运行有两种方式&#xff0c;一种是部署为 服务模式&#xff0c;另一种则是 直接启动 .NET 发布之后的 exe 文件以 控制台模式运行&#xff0c;控制台模式运行主要问题…

iOS runtime实战应用:关联对象

在开始之前建议先阅读iOS runtime的基础理解篇&#xff1a;iOS内功篇&#xff1a;runtime 有筒子在面试的时候&#xff0c;遇到这样一个问题&#xff1a;“如何給NSArray添加一个属性&#xff08;不能使用继承&#xff09;”&#xff0c;筒子立马蒙逼了&#xff0c;不能用继承&…