博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Beauty Contest
阅读量:6239 次
发布时间:2019-06-22

本文共 1278 字,大约阅读时间需要 4 分钟。

题目大意:给n个点,求相聚最远距离的平方(输出整形)

集体思路:先求出包围所有点的凸包,然后暴力枚举求解(直接暴力会超时)

#include
#include
#include
#include
#include
#include
#include
using namespace std;#define eps 0.0000000001#define PI acos(-1.0)//*******************************************************************************//点和向量struct Point{ double x,y; Point(double x=0,double y=0):x(x),y(y){}};typedef Point Vector;Vector operator-(Vector a,Vector b){ return Vector(a.x-b.x,a.y-b.y);}bool operator<(const Vector& a,const Vector& b){ return a.x
1、点排序2、删除重复的然后把前两个放进凸包//3、从第三个往后当新点在凸包前进左边时继续,否则一次删除最近加入的点,直到新点在左边int ConVexHull(Point* p,int n,Point*ch){ sort(p,p+n); int m=0; for(int i=0;i
1 && Cross(ch[m-1]-ch[m-2],p[i]-ch[m-2])<=0)m--; ch[m++]=p[i]; } int k=m; for(int i=n-2;i>=0;i--){ //上凸包 while(m>k && Cross(ch[m-1]-ch[m-2],p[i]-ch[m-2])<=0)m--; ch[m++]=p[i]; } if(n>1)m--; return m;}//*******************************************************************Point x[50005];Point ch[50005];int main(){ for(int n;cin>>n&&n;){ for(int i=0;i
>x[i].x>>x[i].y; sort(x,x+n); int m=ConVexHull(x,n,ch); double maxx=-1,anss; for(int i=0;i
maxx)maxx=anss; } } cout<<(int)maxx<<'\n'; }return 0;}
View Code

 

 

转载地址:http://pvdia.baihongyu.com/

你可能感兴趣的文章
Python全栈学习_day011作业
查看>>
20172304 实验三报告
查看>>
[转载]项目风险管理七种武器-霸王枪
查看>>
正则实例
查看>>
Hash与Map
查看>>
sqlmap使用笔记
查看>>
U盾技术学习笔记
查看>>
云计算面临的安全挑战 访北大计算机学院院长陈钟
查看>>
一起谈.NET技术,C#中标准Dispose模式的实现
查看>>
艾伟:C#对游戏手柄的编程开发-API篇(2)
查看>>
关于defineProperty的一点理解
查看>>
如何创建只读域控制器RODC(Read-Only Domain Controller)
查看>>
python-字符串
查看>>
LabVIEW串口通信
查看>>
2017UGUI之slider
查看>>
python下载酷狗音乐源码
查看>>
MySQL学习----explain查看一条sql 的性能
查看>>
第零次作业
查看>>
Android + eclipse +ADT安装完全教程
查看>>
【批处理学习笔记】第七课:简单的批处理命令(6)
查看>>