题目链接:http://poj.org/problem?id=1328

解题报告:

1、按照头结点排序。

#include <cstdio>
#include <cmath>
#include <string.h>
#include <algorithm> using namespace std; struct point
{
double x;
double y;
} dis[],pos[]; bool cmp(const point a,const point b)
{
return a.x<b.x;
} int n;
double d; int main()
{
int Case=;
while(scanf("%d%lf",&n,&d),n!=||d!=)
{
memset(dis,,sizeof(dis));
bool flag=true; for(int i=; i<n; i++)
{
scanf("%lf%lf",&dis[i].x,&dis[i].y);
if(d<fabs(dis[i].y))
{
flag=false;
}
} for(int i=; i<n; i++)
{
pos[i].x=dis[i].x-sqrt(d*d*1.0-dis[i].y*dis[i].y);///计算一下左右区间
pos[i].y=dis[i].x*1.0+sqrt(d*d*1.0-dis[i].y*dis[i].y);
} if(flag)
{
sort(pos,pos+n,cmp); point tmp=pos[];
int ans=; for(int i=; i<n; i++)
{
if(pos[i].x>tmp.y)//没有重合的地方
{
ans++;
tmp=pos[i];
}
else if(pos[i].y<tmp.y)///有重合的地方且下一个岛屿的右覆盖较远
tmp=pos[i];
} printf("Case %d: %d\n",++Case,ans);
}
else printf("Case %d: %d\n",++Case,-);
}
return ;
}

2、按照尾节点排序。

#include <cstdio>
#include <cmath>
#include <string.h>
#include <algorithm> using namespace std; struct point
{
double x;
double y;
} dis[],pos[]; bool cmp(const point a,const point b)
{
return a.y<b.y;///按尾节点排序
} int n;
double d; int main()
{
int Case=;
while(scanf("%d%lf",&n,&d),n!=||d!=)
{
memset(dis,,sizeof(dis));
bool flag=true; for(int i=; i<n; i++)
{
scanf("%lf%lf",&dis[i].x,&dis[i].y);
if(d<fabs(dis[i].y))
{
flag=false;
}
} for(int i=; i<n; i++)
{
pos[i].x=dis[i].x-sqrt(d*d*1.0-dis[i].y*dis[i].y);
pos[i].y=dis[i].x*1.0+sqrt(d*d*1.0-dis[i].y*dis[i].y);
} if(flag)
{
sort(pos,pos+n,cmp); point tmp=pos[];
int ans=; for(int i=; i<n; i++)
{
if(pos[i].x>tmp.y)///没有重复
{
ans++;
tmp=pos[i];
}
else if(pos[i].x>tmp.y)
tmp=pos[i];
} printf("Case %d: %d\n",++Case,ans);
}
else printf("Case %d: %d\n",++Case,-);
}
return ;
}

雷达覆盖,贪心,类似活动安排(POJ1328)的更多相关文章

  1. hdu2037今年暑假不AC(贪心,活动安排问题)

    今年暑假不AC Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submi ...

  2. HDU 2307 贪心之活动安排问题

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2037 今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)  ...

  3. hdu 2037简单贪心--活动安排问题

    活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合,是可以用贪心算法有效求解的很好例子.该问题要求高效地安排一系列争用某一公共资源的活动.贪心算法提供了一个简单.漂亮的方法使得尽可能多的活动 ...

  4. 忙碌的Nova君 (活动安排问题、贪心算法)

    题目描述 理论上,Nova君是个大闲人,但每天还是有一大堆事要干,大作业啦,创新杯啦,游戏啦,出题坑人啦,balabala......然而精力有限,Nova君同一时间只能做一件事,并不能一心二用.假设 ...

  5. A - 活动安排问题(贪心)

    A - 活动安排问题 有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室?  Input第一行一个正整数n (n <= ...

  6. [C++] 贪心算法之活动安排、背包问题

    一.贪心算法的基本思想 在求解过程中,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解. 从贪心算法的定义可以看出,贪心算法不是从整体上考 ...

  7. 贪心算法求解活动安排<算法分析>

    一.实验内容及要求 1.要求按贪心算法原理求解问题: 2.要求手工输入s[10]及f[10],其中注意自己判断s[i]<f[i]: 3.要求显示所有活动及最优活动安排的i事件列表.二.实验步骤  ...

  8. C++贪心算法实现活动安排问题

    问题描述: 设有n个活动的集合E={1,2,…,n},其中,每个活动都要求使用同一资源,而在同一时间内只有一个活动能使用这一资源.每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且s ...

  9. 51nod1428 活动安排问题 (贪心加暴力)

    1428 活动安排问题 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动 ...

随机推荐

  1. sqoop数据校验

    sqoop数据校验 # check data oracle_cnt=$(sqoop eval \ -Dmapred.job.queue.name=${queue} \ --connect ${conn ...

  2. Jenkins未授权访问脚本执行漏洞

    Jenkins未授权访问脚本执行漏洞 步骤 首先找一个站点挂上一个反弹shell脚本,然后在脚本执行框里执行脚本进行下载到tmp目录: println "wget http://47.95. ...

  3. 更新jdk

    1.从官网下载jdk-8u191-linux-x64.tar.gz,然后放在ubuntu里的Downloads文件夹里.然后解压到/usr/lib/jvm文件夹中. sudo tar -zxvf Do ...

  4. 学习Laravel遇到的问题纪录

    1.更换git  remote $ git remote rm origin $ git remote add origin git@github.com:your_username/hello_la ...

  5. 常见的几种web攻击方式

    一.Dos攻击(Denial of Service attack) 是一种针对服务器的能够让服务器呈现静止状态的攻击方式.有时候也加服务停止攻击或拒绝服务攻击.其原理就是发送大量的合法请求到服务器,服 ...

  6. HDFS读写文件流程

    读取: 写入:https://www.imooc.com/article/70527

  7. oracle impdp时卡死Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX

    今天在用impdp导入时,Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX卡在建索引的过程一直不动,也不报错,重试了好几遍还是这样. 后来恍 ...

  8. Selenium2(WebDriver)中执行JavaScript代码 (转)

    在用selenium编写web页面的自动化测试代码时,可能需要执行一些JavaScript代码,selenium本身就支持执行js,我们在代码中可以使用executeScript.executeAsy ...

  9. 多个ajax请求时控制执行顺序或全部执行后的操作

    1.当确保执行顺序时 (1)请求加async: false,,这样所有的ajax就会同步执行,请求顺序就是代码顺序: (2)$.when   确保所有异步的ajax请求完毕时 $.when($.aja ...

  10. mysql时间戳

    select unix_timestamp('2013-01-01 10:10:10'); , '%Y-%m-%d %H:%i:%S' ) date_format(date,'%Y-%m-%d') - ...