1.这道题能用贪心做出来,其做法是把每个小岛的坐标用转化成以它为中心,与x轴的交点,即一个点,对应一个区间,之后就变成区间选点问题了。用最少的点包含所有的区间,刘汝佳的紫书233页有仔细说明~~
这道题,我还是发现了自己的不足,对模型的转化没反应过来,然后就是我以为雷达站只能是整数点,导致一开始思路就错了。最后就是结点的快速排序我又不怎么熟悉了~~。
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<memory>
#include<math.h>
using namespace std;
const int maxn=1000+100;
int x,y;
typedef struct Node
{
double x1;//左边界
double x2;//右边界
}node;
node island[maxn];
int cmp(const void *a,const void *b)
{
if((*(node *)a).x2>(*(node *)b).x2) return 1;
else if((*(node *)a).x2<(*(node *)b).x2) return -1;
else
{
if((*(node *)a).x1>(*(node *)b).x1) return 1;
else if ((*(node *)a).x1<(*(node *)b).x1) return -1;
else return 0;
}
}
int main()
{
int n,d,kase=0,cnt;
wh