题意:
给定一个平面上n个点和一个值D,要求在x轴上选出尽量少的点,使得对于每一个点,都有一个选出的点离他的欧几里得距离不超过D。
分析:
实际上这道题可以转换为区间问题
根据n个点的高度和所在位置,可以确认这个点需要的x轴的点的取值范围。
然后根据贪心算法,按r排序,然后尽量选择区间的右边。
代码:
#include<bits/stdc++.h>
#define LL long long
#define ms(s) memset(s, 0, sizeof(s))
using namespace std;
const int maxn = 1e5 + 10;
struct Node {
double x, h;
double l, r;
friend bool operator < (const<