poj1328 雷达安装问题

描述

假设滑行是无限直线。土地位于海岸的一侧,海洋位于另一侧。每个小岛都位于海边。并且位于滑行的任何雷达装置只能覆盖d距离,因此如果它们之间的距离最多为d,则可以通过半径装置覆盖海中的岛屿。 

我们使用笛卡尔坐标系,定义滑行是x轴。海侧在x轴上方,陆侧在下方。考虑到每个岛屿在海中的位置,并考虑到雷达装置覆盖范围的距离,您的任务是编写一个程序,以找到覆盖所有岛屿的最小数量的雷达装置。注意,岛的位置由其xy坐标表示。 

这个题最开始是想以雷达为圆心来判断圆内的点,发现不知道如何判断几个点是否在一个圆内,而且不知道雷达的坐标,后来换思路(网上借鉴),要以点为中心,跟x轴相交于两点,在这条线上的雷达都可以包含这个点,要得到雷达最小,就要使得线段重合得最多,问题变成了贪心+区间线段问题。

  1. #include <iostream>
  2. #include <math.h>
  3. #include <algorithm>
  4. using namespace std;
  5. const int MAXN = 1010;
  6. int T, n, d;
  7. struct node
  8. {
  9.     double left, right;
  10. }a[MAXN];
  11. bool operator < (const
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值