目录
题目描述
外星人指的是地球以外的智慧生命。外星人长的是不是与地球上的人一样并不重要,但起码应该符合我们目前对生命基本形式的认识。比如,我们所知的任何生命都离不开液态水,并且都是基于化学元素碳(C)的有机分子组合成的复杂有机体。
42 岁的天文学家 Dr. Kong 已经执著地观测 ZDM-777 星球十多年了,这个被称为“战神”的红色星球让他如此着迷。在过去的十多年中,他经常有一些令人激动的发现。ZDM-777 星球表面有着明显的明暗变化,对这些明暗区域,Dr. Kong 已经细致地研究了很多年,并且绘制出了较为详尽的地图。他坚信那些暗区是陆地,而亮区则是湖泊和海洋。他一直坚信有水的地方,一定有生命的痕迹。Dr. Kong 有一种强烈的预感,觉得今天将会成为他一生中最值得纪念的日子。
这天晚上的观测条件实在是空前的好,ZDM-777 星球也十分明亮,在射电望远镜中呈现出一个清晰的暗红色圆斑。还是那些熟悉的明暗区域和极冠,不过,等等,Dr. Kong 似乎又扑捉到曾看到过的东西,那是什么,若隐若现的。他尽可能地睁大了眼睛,仔细地辨认。哦,没错,在一条直线上,又出现了若干个极光点连接着星球亮区,几分钟后,极光点消失。
Dr. Kong 大胆猜想,ZDM-777 星球上的湖泊和海洋里一定有生物。那些极光点就是 ZDM-777 星球上的供给站,定期给这些生物提出维持生命的供给。
不妨设,那条直线为 xxx 轴,极光点就处在 xxx 轴上,NNN 个亮区 P1,P2,…,PNP_1, P_2, \dots, P_NP1,P2,…,PN 就分布在若干个极光点周围。
接着,Dr. Kong 又有惊人的发现,所有的亮区 PiP_iPi 都处在某个半径为 RRR 的极光点圆内。去掉一个极光点就会有某些亮区 PjP_jPj 不处在覆盖区域内。
Dr. Kong 想知道,至少需要多少个极光点才能覆盖所有的湖泊和海洋。
输入
第一行:KKK 表示有多少组测试数据。
接下来对每组测试数据:
第 111 行:N,RN, RN,R
第 2−N+12 - N+12−N+1 行: Pxi,PyiP_{xi}, P{yi}Pxi,Pyi (i=1,2,…,N)(i = 1, 2, \dots, N)(i=1,2,…,N)
2≤K≤5,1≤R≤50,1≤N≤100,−100≤Pxi,Pyi≤100,∣Pyi∣≤R2 \le K \le 5, 1 \le R \le 50, 1 \le N \le 100, -100 \le P_{xi}, P{yi} \le 100, |P_{yi}| \le R2≤K≤5,1≤R≤50,1≤N≤100,−100≤Pxi,Pyi≤100,∣Pyi∣≤R, R,Pxi,PyiR, P_{xi}, P_{yi}R,Pxi,Pyi 都是整数。数据之间有一个空格。
输出
对于每组测试数据,输出一行: 最少需要的极光点数。
输入输出样例
样例输入
2
3 2
1 2
-3 1
2 1
1 5
5 5
样例输出
2
1
代码C++
#include<bits/stdc++.h>
#include<math.h>
using namespace std;
int node=1;
int tt;
struct sb
{
float x,y;
float x1,x2;//距离
}island[1001];
bool cmp(sb a,sb b)
{
return a.x1<b.x1;
}
int main()
{
int n,d,t;
int i;
cin>>tt;
while(tt--)
{
cin>>n>>d;
int selected=0;
if(n==0||d==0)
return 0;
t=d*d;
int ans=1;
for(i=0;i<n;i++)
{
scanf("%f%f",&island[i].x,&island[i].y);
island[i].x1=island[i].x-sqrt(t-island[i].y*island[i].y);
island[i].x2=island[i].x+sqrt(t-island[i].y*island[i].y);
if(island[i].y>d)
selected=1;
}
sort(island,island+n,cmp);
float l=island[0].x1,r=island[0].x2;
for(i=1;i<n;i++)
{
if(island[i].x1>r)
{
ans++;
l=island[i].x1;
r=island[i].x2;
}
else
{
l=island[i].x1;
if(island[i].x2<r)
r=island[i].x2;
}
}
cout<<ans<<endl;
}
return 0;
}
幸福程序你会编写,快乐描绘在生活里;烦恼程序你会删除,心情保持时刻美丽;忧伤程序你会卸载,生活保持顺顺利利;幸福程序员就是你,在这属于你的节日里,愿你好运一直运行下去,生活事业都如意!