P1158 导弹拦截

news/2024/7/8 6:39:23

P1158 导弹拦截

思路

按每个点到第一个系统的距离排序,然后预处理出每个点及其之后的点到第二个系统的距离的最大值,再循环一遍枚举答案。

 代码

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <algorithm>
 4 #include <cstring>
 5 #include <cctype>
 6 using namespace std;
 7 
 8 #define res register int
 9 inline int read()
10 {
11     int x(0),f(1); char ch;
12     while(!isdigit(ch=getchar())) if(ch=='-') f=-1;
13     while(isdigit(ch)) x=(x<<1)+(x<<3)+ch-'0',ch=getchar();
14     return f*x;
15 }
16 typedef long long LL;
17 const int N=100000+10;
18 int n,x1,y1,x2,y2;
19 int d[N];
20 struct node{
21     int x,y,z;
22 }s[N];
23 inline int calc(int a1,int b1,int a2,int b2)
24 {
25     return (a1-a2)*(a1-a2)+(b1-b2)*(b1-b2);
26 }
27 bool cmp(node a,node b) {return a.z<b.z;}
28 int main()
29 {
30     x1=read(); y1=read(); x2=read(); y2=read(); n=read();
31     for(res i=1 ; i<=n ; i++)
32     {
33         s[i].x=read(); s[i].y=read(); 
34         s[i].z=calc(x1,y1,s[i].x,s[i].y);    
35     }
36     sort(s+1,s+n+1,cmp);
37     for(res i=n ; i>=1 ; i--)
38         d[i]=max(d[i+1],calc(x2,y2,s[i].x,s[i].y)); 
39     int ans(d[1]);
40     for(res i=1 ; i<=n ; i++)
41     {
42         int tmp(s[i].z); tmp+=d[i+1];
43         ans=min(ans,tmp);
44     }
45     printf("%d\n",ans);
46     return 0;
47 }
View Code

 

转载于:https://www.cnblogs.com/wmq12138/p/10363882.html


http://www.niftyadmin.cn/n/4334226.html

相关文章

前端png转pdf_有备无患,轻量在线PDF工具,能上网就能用

正式办公环境下&#xff0c;大家可能有 Adobe / MS Office / Foxit 之类一堆PDF工具可用。 不过有时出差在外&#xff0c;面对一台新的 PC/Mac&#xff0c;或者手机上临时要处理一下 PDF。要么时间紧迫来不及&#xff0c;要么连安装软件的权力也未必有&#xff0c;这时往往比较…

用自己的电脑搭云服务器吗_用别人的芯片,做自己的X86服务器:国内浪潮第一,华为第二...

众所周知&#xff0c;在PC领域&#xff0c;X86架构的芯片是一家独大的&#xff0c;虽然目前也有一些厂商想要向X86架构发起挑战&#xff0c;比如华为去年推出了鲲鹏主板&#xff0c;想将鲲鹏920用于PC&#xff0c;但就目前来讲&#xff0c;还需要很长时间。所以一直以来&#x…

怎么定义int_Java方法到底怎么写!快看我!

Snoopy 煜钊读完需要7分钟速读仅需 3 分钟在学习 Java 的过程中&#xff0c;我们经常会对方法的设计有些迷茫&#xff0c;怎么取名&#xff0c;怎么传参&#xff0c;怎么得到返回值。甚至有的小伙伴并不懂上面这些术语&#xff0c;用你们的话来讲&#xff1a;诶&#xff0c;我这…

python 获取文件编码格式_python 读写文件包含多种编码格式的解决方式

今天写一个脚本文件&#xff0c;需要将多个文件中的内容汇总到一个txt文件中&#xff0c;由于多个文件有三种不同的编码方式&#xff0c;读写出现错误&#xff0c;先将解决方法记录如下&#xff1a;# -*- coding: utf-8 -*-import waveimport pylab as plimport numpy as npimp…

es6比较两个一样的对象_前端框架必学技能-ES6之class

传统的 JavaScript 中只有对象&#xff0c;没有类的概念。它是基于原型的面向对象语言。原型对象特点就是将自身的属性共享给新对象。这样的写法相对于其它传统面向对象语言来讲&#xff0c;很有一种独树一帜的“感脚”&#xff01;非常容易让人困惑&#xff01;首先大家要明白…

是什么码_穿着84码的鞋是什么感受?

如果今天让平时穿42的你穿上双倍大码数的鞋会是什么感受&#xff1f;这不是在开玩笑哦&#xff0c;在之前由英国设计师Martine Rose与Nike的联名企划中&#xff0c;就可让你圆梦&#xff1a;穿超超超大鞋是什么感受。Martine Rose x Nike Air Monarch IVemm相信有不少朋友都被吓…

4删除后果_如果在手机上见到这4类图片,建议赶快删除!现在知道还不算晚

手机做为常用的一种工具&#xff0c;大家是不是经常会在手机内保存一些图片&#xff0c;资料等&#xff0c;这些图片涉及的范围比较广&#xff0c;部分还会涉及到大家的隐私&#xff0c;所以大家用完后&#xff0c;一定要记得删除哦&#xff01;现在知道还不算太晚&#xff0c;…

bigdecimal java 最大值_Java中BigDecimal类的常用方法

1.简介BigDecimal类位于java.math.BigDecimal包下。使用此类可以完成大的小数操作&#xff0c;而且也可以使用此类进行精确的四舍五入&#xff0c;这一点在开发中经常使用。对于不需要任何准确计算精度的程序可以直接使用float或double完成&#xff0c;但是如果需要精确计算结果…