博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 1328 Radar Installation 排序贪心
阅读量:5101 次
发布时间:2019-06-13

本文共 2183 字,大约阅读时间需要 7 分钟。

Radar Installation
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 56702   Accepted: 12792

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 cover d distance, so an island in the sea can be covered by a radius installation, if the distance between them is at most d.
We use Cartesian coordinate system, defining the coasting is the x-axis. The sea side is above x-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-y coordinates.
Figure A Sample Input of Radar Installations

Input

The input consists of several test cases. The first line of each case contains two integers n (1<=n<=1000) and d, where n is the number of islands in the sea and d is the distance of coverage of the radar installation. This is followed by n 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 21 2-3 12 11 20 20 0

Sample Output

Case 1: 2Case 2: 1 思路就是,排序之后,按右端点放雷达就好
#include
#include
#include
#include
#include
using namespace std;const int N=1010;struct node{ double l,r;}seg[N];int cmp(node a,node b){ return a.l
d) flag=1; } sort(seg,seg+n,cmp); printf("Case %d: ",++cases); if(flag){ printf("-1\n"); continue; } int ans=1; node line=seg[0]; for(int i=1;i
=seg[i].r) line=seg[i]; } printf("%d\n",ans); } return 0;}

 

 

转载于:https://www.cnblogs.com/qscqesze/p/4293581.html

你可能感兴趣的文章
「题解」:[线性代数]:relays 奶牛接力跑
查看>>
angular 按下回车键触发事件
查看>>
hive基本操作与应用
查看>>
python protobuf在不确定消息类型的情况下解析消息
查看>>
自定义标签 tld
查看>>
java class加载机制及对象生成机制
查看>>
Linux日志分割--logrotate
查看>>
17.如何修改SESSION的生存时间。
查看>>
前端面试题
查看>>
关于讯飞语音SDK开发学习
查看>>
(Hibernate进阶)Hibernate基本映射(三)
查看>>
requirejs简单应用
查看>>
通过 chroot 解决 Linux 系统无法启动的问题
查看>>
OSX Dev Day 3 - NSCollectionView
查看>>
httpclient post
查看>>
倒计时练习
查看>>
深入浅出多线程——ReentrantLock (二)
查看>>
数据结构4 图
查看>>
iOS把汉字转成拼音
查看>>
程序员学习网站
查看>>