算法题目——岛屿问题(POJ-1328)

该博客探讨了POJ-1328算法题目的解决方案,即如何使用最少的雷达覆盖所有岛屿。文章指出,关键在于对岛屿按位置排序,并理解小区间被满足后大区间也会被满足的原理。当前一岛屿右端点小于下一岛屿左端点时,需要新增雷达。通过这种方式,可以确保找到覆盖所有岛屿的最优雷达配置。
摘要由CSDN通过智能技术生成

POJ-1328
题目大意:在x轴上建立尽量少的雷达覆盖所有的岛屿。

Input:岛屿的数量n,雷达覆盖半径d.接下来的n行一行表示一个岛屿(x,y).

Output:每个案例的雷达最少数目.
经典的区间选点!

要搞清楚为什么排序,然后要明白如何选点。

思想(排序原因):小区间被满足,大区间一定被满足。

(所以排序后所有岛屿都是 递增的!)(即小区间都在前面。)

选点:只有前一个点的右端点小于下一个点的左端点,这时才选一个点(即增加一个雷达)因为不可能存在一个雷达可以覆盖到这两个岛屿,而且此时前面用一个雷达覆盖即为最优解!(因为大区间包含了小区间)

#include<iostream>
#include<algorithm>
#include<math.h>
#include <stdlib.h>
#include<vector> 
using namespace std;
 struct point{
   
	double left,right;
}p[2021],temp;

bool operator <(p
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值