装雷达

Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the sea side. And any radar installation, locating on the coasting, can only cover d<tex2html_verbatim_mark> distance, so an island in the sea can be covered by a radius installation, if the distance between them is at most d<tex2html_verbatim_mark> .

We use Cartesian coordinate system, defining the coasting is the x<tex2html_verbatim_mark> -axis. The sea side is above x<tex2html_verbatim_mark> -axis, and the land side below. Given the position of each island in the sea, and given the distance of the coverage of the radar installation, your task is to write a program to find the minimal number of radar installations to cover all the islands. Note that the position of an island is represented by its x<tex2html_verbatim_mark> - y<tex2html_verbatim_mark>coordinates.

<tex2html_verbatim_mark>

Input

The input consists of several test cases. The first line of each case contains two integers n<tex2html_verbatim_mark>(1n1000)<tex2html_verbatim_mark> and d<tex2html_verbatim_mark> , where n<tex2html_verbatim_mark> is the number of islands in the sea and d<tex2html_verbatim_mark> is the distance of coverage of the radar installation. This is followed by n<tex2html_verbatim_mark> lines each containing two integers representing the coordinate of the position of each island. Then a blank line follows to separate the cases.

The input is terminated by a line containing pair of zeros.

Output

For each test case output one line consisting of the test case number followed by the minimal number of radar installations needed. `-1‘ installation means no solution for that case.

Sample Input

3 2
1 2
-3 1
2 1

1 2
0 2

0 0

Sample Output

Case 1: 2
Case 2: 1

思路:    贪心,找重复区间

源代码:
 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<cstring>
 6 #include<string>
 7 using namespace std;
 8 #define maxn 1000+5
 9 struct node
10 {
11     double left;
12     double right;
13     bool operator<(const node&a)const
14     {
15         return left < a.left;
16     }
17 }line[maxn];
18 int main()
19 {
20     int n, d;
21     int flag, ans=0, k;
22     while (cin >> n >> d)
23     {
24         ans++;
25         flag = 1;
26         k = 0;
27         int x, y;
28         if (n == 0 && d == 0)
29             break;
30         for (int i = 0; i < n; i++)
31         {
32             cin >> x >> y;
33
34             if (flag == 0)continue;
35             if (y>d)
36                 flag = 0;
37             else
38             {
39                 /*Index = 0;*/
40                 line[i].left = (double)x- sqrt((double)d*d-(double)y * y);
41                 line[i].right = (double)x + sqrt((double)d*d - (double)y * y);
42
43             }
44         }
45         if (flag == 0)
46         {
47             cout << "Case " << ans << ": -1" << endl;
48             continue;
49         }
50         sort(line, line + n);
51         k++;
52         double cur = line[0].right;
53         for(int i = 1; i < n; i++)
54         {
55             if (line[i].right < cur)
56             {
57                 cur = line[i].right;
58
59             }
60             else if (cur<line[i].left)
61             {
62                 cur = line[i].right;
63                 k++;
64             }
65
66         }
67
68         cout << "Case " << ans << ": "<<k << endl;
69     }
70     return 0;
71 }

心得:

好吧,这个题目自己都还没完全搞懂,也是醉了~~~,好好研究,之后懂了再补上说明。

时间: 2024-11-05 13:42:57

装雷达的相关文章

用mediaplay实现抓图

众所周知,数据科学是这几年才火起来的概念,而应运而生的数据科学家(data scientist)明显缺乏清晰的录取标准和工作内容.此次课程以<星际争霸II>回放文件分析为例,集中在IBM Cloud相关数据分析服务的应用.面对星际游戏爱好者希望提升技能的要求,我们使用IBM Data Science Experience中的jJupyter Notebooks来实现数据的可视化以及对数据进行深度分析,并最终存储到IBM Cloudant中.这是个介绍+动手实践的教程,参会者不仅将和讲师一起在线

poj1328雷达设置 贪心

Radar Installation Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the sea side. And any radar installation, locating on the coasting, can only

合成孔径雷达(Synthetic Aperture Radar, SAR)

合成孔径雷达(Synthetic Aperture Radar, SAR)是20世纪最先进的科技发明之一.SAR有机载与卫载系统之分,能提供地表地形.乃至行星等远距离目标区高解析度图像.目前无人飞行载具挂载合成孔径雷达在监视和侦察任务需求上持续成长,并可搜集战术和战略情资.具体来说,无人飞行载具合成孔径雷达已经取代了部份的光学与红外线感测器,因为它提供了许多独特的,有价值的功能,例如远距离.全天时与全天候成像.地面移动目标指示与聚焦成像等.无人飞行载具合成孔径雷达系统有低成本.体积小.低风险,并

奔驰S级加装单门四门无钥匙进入2015款S400L 4MATIC美车达广州

W新:dawvid 广州美车达奔驰S级2015款S400L 4MATIC加装单门四门无钥匙进入舒适进入系统产品名称:广州美车达奔驰S级2015款S400L 4MATIC加装单门四门无钥匙进入舒适进入系统适合车型:奔驰W222 一.广州美车达奔驰S级2015款S400L 4MATIC加装单门四门无钥匙进入舒适进入系统 无钥匙进入:走近车2米距离时,车锁会自动感应开锁并解除防盗:离开车2米以外距离时,车锁自动锁上并进入防盗.只要你随身携带智能钥匙无需拿出就可以轻松打开车门锁闭车门,无需再担心粗心大意

天气雷达原理

第一章 我国新一代天气雷达原理 一.了解新一代天气雷达的三个组成部分和功能 新一代天气雷达系统由三个主要部分构成:雷达数据采集子系统(RDA).雷达产品生成子系统(RPG).主用户处理器(PUP). 二.了解电磁波的散射.衰减.折射 散射:当电磁波束在大气中传播,遇到空气分子.大气气溶胶.云滴和雨滴等悬浮粒子时,入射电磁波会从这些粒子上向四面八方传播开来,这种现象称为散射. 衰减:电磁波能量沿传播路径减弱的现象称为衰减,造成衰减的物理原因是当电磁波投射到气体分子或云雨粒子时,一部分能量被散射,另

【贪心】雷达问题

题目描述 张琪曼等人用时空雷达定位李旭琳所在的空间位置.如图7.3所示,时空雷达装在一条直线上,直线上方是空间海洋,每个人在空间海洋的位置就如同大海中的岛屿,这些人的位置已知,每一个雷达的扫描范围是一个半径为d的圆形区域,问最少需要多少个雷达覆盖所有的人(岛屿). 输入 输入包括多组测试数据,每组测试数据第一行为两个整数n (1≤n≤1000) 和 d,即岛屿数和雷达扫描半径.随后n行每行两个整数表示岛屿坐标.每组测试数据以空行间隔,所有测试数据以0 0结束. 输出 输出最少需要安装雷达数,每组

6个知乎高赞的手机APP你都装了吗?没装就可惜了

手机如今已成为我们的生活必需品了,一般刚入手的手机你会装上哪些APP? 今天我们就来盘点一下那么知乎点赞超高的手机APP吧,看看你都装了吗,据说没装会很遗憾,先不管是真是假,先来了解一下吧! 1.诗雨 诗雨,一款很小清新的APP,界面简洁又好看.这是一款颜值和实力并备的天气APP,特别就在于它是以诗句来描绘当前的天气状况的,而不是像其他天气APP那样直接明了的介绍当前的天气状况. 2.WeatherKit WeatherKit,这款APP也是天气类的APP,和诗雨不一样的是,它内置了"天气雷达&

Win10装哪个版本好用?Win10七大版本详解及主要区别

Win10装哪个版本好用?对很多用户来说都不是很清楚,下面小编为大家介绍Win10七大版本详解及主要区别,有需要的朋友可以过来参考一下,希望能对大家有所帮助 微软备受期待的下一代操作系统--Windows 10--即将正式推出.该操作系统反映了软件巨人对未来所做出的种种改变和看法.例如,公司借由"通用应用平台"实施的"大一统"战略.那么Win10装哪个版本好用?下面小编就为大家介绍Win10七大版本详解及主要区别,一起来看看吧! 届时,所有设备都将运行于统一的系统核

Android特效专辑(六)——仿QQ聊天撒花特效,无形装逼,最为致命

Android特效专辑(六)--仿QQ聊天撒花特效,无形装逼,最为致命 我的关于特效的专辑已经在CSDN上申请了一个专栏--http://blog.csdn.net/column/details/liuguilin.html 日后我所写的特效专辑也会以一添加在这个专栏上,今天写的这个特效,是关于聊天的,你肯定遇到过,就是你跟人家聊天的时候,比如发送应(么么哒),然后屏幕上全部就是表情了,今天我们就是做这个,撒花的特效,国际惯例,上图 截图 实现这样的效果,你要知道贝塞尔曲线,何谓贝塞尔曲线?其实