poj1328Radar Installation解题报告

这篇博客介绍了如何利用贪心算法解决POJ1328题目的解题过程。将小岛坐标转化为区间,然后寻求包含所有区间的最小点数,该问题在刘汝佳的书中有所阐述。博主反思了自己在模型转化、对雷达站位置理解以及排序算法上的不足。
摘要由CSDN通过智能技术生成

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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值