洛谷P1158 导弹拦截[NOIP2010 普及组]
创始人
2025-05-29 00:45:28
0

题面:

输入#1(输出18):
0 0 10 0
2
-3 3
10 0
输入#2(输出30)
0 0 6 0
5
-4 -2
-2 3
4 0
6 -2
9 1

解题:

分析:

数据范围:N≤1e5,时间复杂度大约在O(nlogn),

sort排序可通过,而双层1~N循环枚举每种可能解不太有希望通过……

预处理(复杂度O(n)):

创建D类,代表导弹;拥有变量s1、s2,分别对应与系统1、系统2距离²;

读入时,求出每个导弹的s1、s2;

排序(复杂度O(nlogn))

用sort()函数,对s1距离降序排序。

计算(复杂度O(n))

首先,我们特判,系统1、系统2覆盖了全部点,即:将ans初始化为s1、s2的最大值;

下面打出排序好的表:

我们知道,如果系统1覆盖了距离远的点,那么距离近的点也一并被系统1覆盖,

即:如果取40,后面20、16、13的点都被系统1覆盖,系统2不需要计算这些点

则:系统2需要的最大工作半径为:当前未被覆盖的点中,s2的最大值!

有点小困惑?没关系,下面我们一起来对样例#2进行模拟

(系统1范围:k1,系统2:k2):

  • 1:k1=40,k2=10,

系统1覆盖了距离40的C点,以及比它离自己更近的、后面的(D E F)点

而系统2需要做的,就是把系统1没有覆盖到的B点覆盖,即k2=10;

  • 2:k1=20,k2=10,

系统1覆盖了距离20的D点,以及比它离自己更近的、后面的(E F)点

而系统2需要做的,就是把系统1没有覆盖到的B、C点覆盖,因此,k2必须取max(4 ,10)=10;

  • 3:k1=16,k2=104,

  • 4:k1=13,k2=104,

如此,最优答案ans除了s1、s2的最大值(一个系统覆盖所有点,另一个系统不工作):82、104外,

便只能在我们所枚举的k1+k2中产生,在计算k1、k2时不断更新ans即可;

❀❀❀❀❀❀❀完结撒花❀❀❀❀❀❀❀

AC代码奉上

#include
#include
#include
#define MAXN 1e6+5using namespace std;int xa, ya, xb, yb, n;
long long ans = MAXN, s2Maxn = 0;class D
{
public:int x; int y;long long s1, s2;//与1/2发射器的距离void cal() //计算与系统1、系统2的距离{this->s1 = (x - xa) * (x - xa) + (y - ya) * (y - ya);this->s2 = (x - xb) * (x - xb) + (y - yb) * (y - yb);}
};class MyCompare  //给s1排序的仿函数
{
public:bool operator ()(D d1,D d2){return d1.s1 > d2.s1;}
};vectorv; //装"导弹"的容器(int main()
{cin >> xa >> ya >> xb >> yb >> n;for (int i = 1; i <= n; i++){D d;cin >> d.x >> d.y;d.cal();s2Maxn = max(s2Maxn, d.s2); //记一下s2的最大值,因为没有对s2排序v.push_back(d);}if (v.size() == 1) { cout << min(v[0].s1, v[0].s2) << endl; return 0; } //对只有一个点的情况特判sort(v.begin(), v.end(), MyCompare());  //排序排序ans = min(min(v[0].s1, s2Maxn), v[0].s2 + v[1].s1); //初始化ans,为一个系统全覆盖,另一个不工作情况for (int i = 1; i <= v.size() - 2; i++) {v[i].s2 = max(v[i].s2, v[i - 1].s2);   //前面的s2更大,用大的s2把这个替换掉,因为我们只要最大的s2 ans = min(ans, v[i + 1].s1 + v[i].s2); //更新答案}cout << ans << endl;return 0;  //溜咯~
}

上一篇: 《影子》教学反思

下一篇: 吕燕

相关内容

热门资讯

论文致谢词 论文致谢词范文(精选11篇)  论文致谢是很多毕业生都要接触和撰写的,用于感谢在论文写作过程中帮助过...
财税法学论文 财税法学论文  在各领域中,大家一定都接触过论文吧,论文写作的过程是人们获得直接经验的过程。为了让您...
理念 理念积极培育青少年的生命情感生命情感是个体对自我生命的体认、肯定、接纳和珍爱,是对生命意义的自觉、欣...
小卫星随机振动试验和噪声试验... 小卫星随机振动试验和噪声试验对比研究针对小卫星的结构特点,从理论和试验两方面对比分析了随机振动环境和...
猪肢蹄病的类型、原因及防治 猪肢蹄病的类型、原因及防治猪肢蹄病是指四肢和四蹄疾病的总称,又称跛行病.通常是由于某种原因导致的肢蹄...
谈自噬在肿瘤中的作用及运动干... 谈自噬在肿瘤中的作用及运动干预的影响论文  1 自噬  1.1 自噬的基本机制  最近几年,很多学者...
车间常见工艺及危险品安全生产... 车间常见工艺及危险品安全生产管理对策摘要:从化工车间常见工艺和危险品出发,分析其危险性,并提出加强管...
论景颇语的分化名词 论景颇语的分化名词本文讨论了景颇语中的分化名词.所谓分化名词,是指从古景颇语的名动转类词中分化出来的...
英汉语音乐美比读 英汉语音乐美比读英汉语言的音乐美从不同方面展示出各自语言的语音及其结构特色.汉语是集声、韵、调之美的...
大力推进农村中小学现代远程教... 大力推进农村中小学现代远程教育国务委员陈至立29日下午考察了我国农村中小学现代远程教育(www.xf...
多肽的固相合成法研究进展论文... 多肽的固相合成法研究进展论文摘要  论文摘要是对论文的内容不加注释和评论的简短陈述,要求扼要地说明研...
国际法渊源论文 国际法渊源论文  随着经济全球化和国际交往的日益频繁,国际法作为法律的一个分支部门,在发挥其维护国际...
公路工程质量检验标准的演变修... 公路工程质量检验标准的演变修订论文  摘要:介绍了《公路工程质量检验评定标准》的演变和适用范围的变化...
物理的小论文 有关物理的小论文(精选20篇)  在学习、工作生活中,大家都经常看到论文的身影吧,论文是对某些学术问...
牙膏(GB8372-) 牙膏(GB8372-2008)1 范围 本标准规定了牙膏的.术语和定义、要求、试验方法、检验规则、标...
成本管理论文参考 成本管理论文参考模板  成本管理作为重要的企业管理活动之一,无论在理论研究还是在实践创新方面,均取得...
幼儿园体育活动组织和实施论文 幼儿园体育活动组织和实施论文  摘要:幼儿园在对小朋友实施全面、和谐发展的教育时,必须把“体育”放在...
中国汽车零部件市场发展概况分... 中国汽车零部件市场发展概况分析中国汽车零部件市场发展概况分析1.市场规模汽车市场可以分为前市场和后市...
商标保护的现状及如何保护商标... 商标保护的现状及如何保护商标之探索商标保护的现状及如何保护商标之探索本文作者:俄音巴特查字典范文网原...
旋覆代赭汤治疗反流性食管炎 旋覆代赭汤治疗反流性食管炎64-6哑者!加桑叶"桔梗"瓜蒌皮"木蝴蝶"#!#!#!#!$$$$藏青果...