无脑暴力题,算出所有点到圆心p1的距离的平方,从小到大排序。

然后暴力枚举p1的半径的平方,计算剩余点中到p2的最大距离的平方,枚举过程中记录答案

#include<cstdio>
#include<cstring>
#include<vector>
#include<cmath>
#include<queue>
#include<list>
#include<algorithm>
using namespace std; const int maxn=+;
struct point
{
long long x,y;
long long len2;//与圆心p1的距离的平方
}p[maxn],p1,p2;
int n; long long Len2(point a,point b)
{
return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);
} bool cmp(const point&a,const point&b)
{
return a.len2<b.len2;
} int main()
{
scanf("%d",&n);
scanf("%lld%lld",&p1.x,&p1.y);
scanf("%lld%lld",&p2.x,&p2.y); for(int i=;i<n;i++) scanf("%lld%lld",&p[i].x,&p[i].y);
for(int i=;i<n;i++) p[i].len2=Len2(p1,p[i]); long long ans=-;
sort(p,p+n,cmp); for(int i=;i<n;i++)
{
long long Max=;
for(int j=i+;j<n;j++)
Max=max(Max,Len2(p2,p[j]));
if(ans==-) ans=Max+p[i].len2;
else ans=min(ans,Max+p[i].len2);
}
long long Max=;
for(int i=;i<n;i++)
Max=max(Max,Len2(p2,p[i]));
ans=min(ans,Max);
printf("%lld\n",ans);
return ;
}

最新文章

  1. 理解java虚拟机内存分配堆,栈和方法区
  2. First glance in Go
  3. WCF报 当前已禁用此服务的元数据发布的错误
  4. 正则过滤html标签
  5. QT 设置SizePolicy的例子(简单明了)
  6. 【小练习01】CSS--PS提示框制作
  7. git的一些基本命令
  8. Spring学习笔记5——注解方式AOP
  9. Docker之进入容器(三)
  10. MongoDB安全使用指引
  11. ES6 块级作用域
  12. Spark新手入门——3.Spark集群(standalone模式)安装
  13. 在代码中设置RelativeLayout布局中标签的android:layout_toLeftOf、android:layout_toRightOf等属性
  14. [转]单据套打WINFORM实现,带预览功能
  15. LeetCode 70. Climbing Stairs爬楼梯 (C++)
  16. Knockout: 实践CSS绑定和afterkeydown事件, 给未通过校验的输入框添加红色边框突出显示; 使用afterkeydown事件自动将输入转大写字母.
  17. 破解Linux系统root用户密码
  18. linux 安全狗安装问题
  19. Java入门:注册模块的实现
  20. 在小红家里面,有n组开关,触摸每个开关,可以使得一组灯泡点亮。

热门文章

  1. TP4056大电流1A使用注意事项
  2. 【转】Git代码行统计命令集
  3. 【单源最短路】dijstra poj 1502
  4. opencv---cvor
  5. linux 终端相关
  6. c语言判断打开文件是否为空的方法
  7. json中文乱码问题
  8. 后台前台json传递数据的方式两种方式 $.get, $.getJSON
  9. php源码分析之php_info输出中css样式是怎么来的
  10. the.book.of.gimp.pdf文字不显示